文件系统

标准库OS常用命令

  • 先自建一个文件夹
import os
os.getcwd()   #查看当前路径
os.chdir("#文件夹路径")  #修改当前路径

建立一个子文件夹,已存在时会报错
os.mkdir("#名称")
删除一个文件夹,不存在时会报错
os.rmdir("#名称")
列出当前目录或指定目录下所有文件夹及文件名称,返回一个列表
os.listdir()
修改文件或文件夹的名称
os.rename('#原名称','#新名称')
删除一个文件
os.remove('#要删除的文件名称')
在每个文件名前加前缀

for i in os.listdir():
    os.rename(i,'233'+i)

文件的打开与关闭

open()函数提供7种基本的打开模式

‘r’ 只读模式 ,如果文件不存在,返回异常FileNotFoundError,默认值
‘w’ 覆盖写模式,文件不存在则创建,存在则完全覆盖源文件
‘x’ 创建写模式 ,文件不存在则创建,存在则返回异常FileExistsError
‘a’ 追加写模式,文件不存在则创建,存在则在原文件最后追加 内容
‘b’ 二进制文件模式
‘t’ 文本文件模式,默认值
‘+’ 与r/w/x/a一同使用,在原功能基础上增加同时读写功能
rb 以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。
wb 以二进制格式打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
ab 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入
r+ 打开一个文件用于读写。文件指针将会放在文件的开头。
w+ 打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
a+ 打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开是会是追加模式。如果该文件不存在,创建新文件用于读写。
rb+ 以二进制格式打开一个文件用于读写。文件指针将会放在文件开头。
wb+ 以二进制格式 打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
ab+ 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。

文件关闭close()

程序执行完毕后,系统会关闭由该程序打开的文件,但更好的做法,是在文件使用完毕后,由程序调用cose()方法关闭文件。
实际上,计算机中可打开的文件数量是有限的,每打开一个文件,就会占用一个“名额”,当该“名额”耗尽后,系统将无法再打开新的文件。此外,当文件以缓冲方式打开时,磁盘文件与内存间的读写并不是即时的,若程序因异常关闭,可能导致缓冲区中的数据无法写入文件,造成数据丢失,
综上所述,在文件使用完毕后,及时使用close()函数关闭文件是有必要的.

read()

read()方法可从指定文件中读取指定字节的数据,该方法的定义如下:
read(size)
其中参数size用于指定从文件中读取的数据的字节数,若参数缺参,则一次读出指定文件中的所有数据。

>>>f = open("./a.txt")
>>>f.read(5)       #从a.txt中读取5个字节
>‘hello’
>>>f.read(3)      #从a.txt中读取3个字节(从还未读取的位置开始)
>‘ it’
>>>f.read()         #读取剩余的全部数据
>‘heima.\nhello itcast.hello world.’
>>>f.read()              #再次调用,读取到的数据为空
>..

readline()

按行读取(一行一行)

readlines()

按行读取(返回所有行)

tell()

用户可通过tell()方法获取文件当前的读写位置。以操作文件a.txt为例. tell()的用法如下所示。

>>> f = open("a.txt")
>>> f.tell()
>0
>>>f.read(5)
>'hello'
>>>f.tell()
>5
>>>f.close( )

seek()

一般情况下,文件的读写是顺序的,但并非每次读写都需从当前位置开始。Python提供了seek()方法,使用该方法可控制文件的读写位置,实现文件的随机读写。seek()方法的声明如下:
seek(offset,from)
其中参数offset表示偏移量,即读写位置需要移动的字节数: from用于指定文件的读写位置,该参数的取值为: 0,1,2,它们代表的含义分别如下:

  • 0:表示文件开头
  • 1:表示使用当前读写位置.
  • 2:表示文件末尾
    例:
    • seek(x,0) :从起始位置即文件首行首字符开始移动X个字符
    • seek(x,1) :表示从当前位置往后移动X个字符
    • seek(-x,2) :表示从文件的结尾往前移动X个字符

write()

write(str)
其中str表示要写入文件中的字符串。若调用成功则返回本次写入文件中的字节数。

>>>f = open('a.txt','w')            #要写入内容,必须要先打开文件
>>>f .write("a.\n")
3                                       #本次写入文件的字节数
>>>f.write("abc.")
4                                   #本次写入文件的字节数
>>>f.write("hello world.")
12                                    #本次写入文件的字节数
>>>f.close()                              #关闭文件
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章