...

Python基础09-文件操作

纯文本文件读取

假设有纯文本文件demo.txt内容如下:

hello
world

读取全部内容

f = open('demo.txt', 'r', encoding='utf-8')
data = f.read()  # 读取文件全部内容
print(data)
f.close()

其中,如果文件和脚本不在同一路径,'demo.txt'要使用文件绝对路径,'r'时打开文件模式,即'只读'模式,encoding用于指定文件编码。

按行读取

f = open('demo.txt', 'r', encoding='utf-8')
line = f.readline()  # 读取一行(包括结尾的换行符)
print(line)
line = f.readline()  # 读取下一行(包括结尾的换行符)
print(line)
f.close()

结合for循环按行读取文件全部内容

f = open('demo.txt', 'r', encoding='utf-8')
for line in f.readlines():   # 也可以直接 for line in f:
    print(line)  # 每一行内容包括结尾的换行符
f.close()

纯文本文件写入

写入整段文本

data = '''hello
world
'''
f = open('demo2.txt', 'w', encoding='utf-8')
    f.write(data)
f.close()

这里使用了'w'模式,即'写入'模式,如果文件不存在,则自动创建文件(如果给定了文件路径,要求文件所在目录必须存在)。如果文件存在,则清空内容进行写入。

写入多行数据
如果有一行一行文本组成的列表型数据,可以使用f.writelines()写入

data = ['hello\n', 'world\n']
f = open('demo2.txt', 'w', encoding='utf-8')
    f.writelines(data)
f.close()

使用上下文格式自动关闭文件

例如:

with open('demo.txt', 'r', encoding='utf-8') as f:
    data = f.read()
print(data)

退出with语句(如print时),自动关闭文件。关闭文件后不能再使用文件指针f

非纯文件读写

还可以用二进制格式读写图片等非二进制文件,有一张图片hua.jpg,我们可以读写来复制文件,例如:

with open('hua.jpg', 'rb') as f:
    data = f.read()

with open('hua_copy.jpg', 'wb') as f:
    f.write(data)

使用二进制读/写模式打开时无需指定编码。

支持的读写模式

t 文本模式 (默认)。
x 写模式,新建一个文件,如果该文件已存在则会报错。
b 二进制模式。
+ 打开一个文件进行更新(可读可写)。
U 通用换行模式(Python 3 不支持)。
r 以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。
rb 以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。一般用于非文本文件如图片等。
r+ 打开一个文件用于读写。文件指针将会放在文件的开头。
rb+ 以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。一般用于非文本文件如图片等。
w 打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。
wb 以二进制格式打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。
w+ 打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。
wb+ 以二进制格式打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。
a 打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
ab 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
a+ 打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。
ab+ 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。

其他类型文件读取

参考

posted @ 2022-04-07 20:39  韩志超  阅读(436)  评论(0编辑  收藏  举报