python中的文件操作
文件的类型
1.文件是存储在辅助存储器上的数据序列,是数据存储的一种形式
2.文件的展现形式为文本文件和二进制文件,本质上,所有文件都是二进制形式存储的
3.文本文件由单一特定编码组成的文件,如UTF-8编码。由于存在编码,也被看成是存储着的长字符串,比如.txt,.py文件等。
4.直接由比特0和1组成,没有统一字符编码,比如.png,.avi文件等
文件的打开操作关闭
文件的使用包括文件的打开-文件的操作(读取和写入)-文件的关闭(特别注意文件的打开和文件的操作的区别)
文件的打开
文件名就是为了能够找到文件。
比如一个文件的路径为D:\python\f.txt 那在文件中应该写成 "D:/python/f.txt" "D:\\python\\f.txt"。使用/或\\来代替\
当源文件同目录时可以省路径。
文件的打开方式
文件的打开模式 | |
---|---|
'r'(read) |
只读模式,默认值,如果文件不存在,返回FileNotFoundError |
'w'(write) |
覆盖写模式,文件不存在则创建,存在则完成覆盖 |
'x'(create) |
创建写模式,文件不存在则创建,存在则返回FileExistsError |
'a'(append) |
追加写模式,文件不存在则创建,存在则在文件最后追加内容 |
'b' |
二进制文件模式 |
't' |
文本文件模式,默认值 |
'+' |
与r/w/x/a一同使用,在原功能基础上增加同时读写功能 |
前面r,w,x,a选择的是打开的模式,后面的b,t选择的是文件类型,前后搭配使用。
# 以文本形式只读打开,加上encoding='utf-8'是因为打开中文文件可能会出错
tf = open("f.txt","rt",encoding='utf-8')
# 以二进制形式只读打开
bf = open("f.txt","rb")
文件内容的读取
操作方法 | 描述 |
---|---|
读入全部内容,如果给出参数,读入前size长度 | |
读入一行内容,如果给出参数,读入该行前size长度 | |
读入文件所有行,以每行为元素形成列表。如果给出参数,读入前hint行 |
# 文件的全文本操作
fo = open(f.txt,'r')
txt = fo.read() # 一次读入,统一处理
fo.close()
fo = open(f.txt,'r')
txt = fo.read(2) # 按数量读入,逐步处理
while txt !="":
txt = fo.read(2)
fo.close()
# 文件的逐行操作
fo = open(f.txt,'r')
for line in fo.readlines(): # 一次读入,分行处理
print(line)
fo.close()
fo = open(f.txt,'r')
for line in fo: # 分行读入,逐行处理
print(line)
fo.close()
文件内容的写入
操作方法 | |
---|---|
向文件写入一个字符串或字节流 | |
将一个元素全为字符串的列表写入文件 | |
改变当前文件操作指针的位置,offset含义如下:0-文件开头;1-当前位置;2-文件结尾 |
fo = open("f.txt","w+") # 打开f.txt,即可读又可写
ls = ["小红","小明","李华"]
f.writelines(ls)
fo.seek(0) # 指针在文件的结尾,让指针重新回到文件的开头,读取才有输出
for line in fo:
print(line)
fo.close()
>>>小红小明李华
# 文件的写入如果需要空格换行需要自己加入" "和"\n",不然都是以紧凑的形式写入
文件的关闭
<变量名>.close