Python学习笔记(8)文件操作
(1)读文件
try:
f = open('123.txt', 'r') #以读模式打开一个文件对象
print(f.read()) #read() 可以一次读取文件的全部内容, Python把内容读到内存
finally:
if f:
f.close() #关闭文件,文件使用完后必须关闭,因为文件对象会占用系统资源,且操作系统同一时间打开的文件是有限的
推荐使用with操作文件,with语句会自动调用close()方法。
with open('123.txt', 'r') as f:
print(f.read())
read() 一次性读取文件的全部内容
with open('123.txt', 'r') as f:
print(f.read())
wanghaining1
wanghaining2
wanghaining3
read(size) 每次最多读取size个字节的内容,如果不能确定文件大小,最好调用read(size)
with open('123.txt', 'r') as f:
s = f.read(15)
print(s)
print('_' * 50)
结果
wanghaining1
wa
__________________________________________________
readline() 每次读取一行数据
with open('123.txt', 'r') as f:
s = f.readline()
print(s)
s = f.readline()
print(s)
结果:
wanghaining1
wanghaining2
readlines() 一次读取所有内容并按行返回list
with open('123.txt', 'r') as f:
for line in f.readlines():
print(line)
print('_'*50)
结果:
wanghaining1
__________________________________________________
wanghaining2
__________________________________________________
wanghaining3
__________________________________________________
要读取二进制数据,比如图片、视频等,使用'rb'。
读取非UTF-8的文本文件,需要传入encoding参数,例如:
f = open('123.txt', 'r', encoding='gbk) ...
(2)写文件
with open('w_test.txt', 'w') as f: # 写入文本文件
f.write('wanghaining1')
with open('w_test.text', 'wb') as f: # 写入二进制数据
f.write(b'wanghaining1')
(3)追加
with open('w_test.txt', 'wb') as f:
f.write(b'wanghaining1')
with open('w_test.txt', 'ab') as f :
f.write(b'wanghaining2')
其它方法
tell() 返回当前位置
seek() 调整光标位置
with open('123.txt', 'r') as f:
print(f.readline())
print(f.tell())
f.seek(0)
print(f.readline())
wanghaining1
14
wanghaining1
truncate()
truncate() 方法用于从文件的首行首字符开始截断,截断文件为 size 个字符,无 size 表示从当前位置截断;截断之后 V 后面的所有字符被删除,其中 Widnows 系统下的换行代表2个字符大小。 。
(4)读写模式
![]()
![]()


浙公网安备 33010602011771号