Python基础之文件操作
文件的读、写、追加模式
事实上,文件并不能进行修改 我们所进行的文件的操作是由软件将文件的内容暂时保存 在用户进行操作之后用新的内容覆盖掉原来的内容。
文件的打开
f = open('文件名', encoding='utf-8') 打开文件的编码格式可以自己指定
f = open('文件名', '操作方式',encoding='utf-8') 打开文件的同时指明操作方式(r w a)
文件的读
读文件前要使用open()函数打开文件,默认使用只读的方式打开文件;
读文件的方式 1. f.read() 默认的读取方式
2. f.readline() 一次读一行
3. f.readlines() 一次读多行并将读出的数据放在一个列表中
4. f.readable() 判断文件是否可读
f = open('ht.txt', encoding='utf-8') data = f.read() print(data)
运行结果:
22222111113333
45643131
86463425
3413
asfds
fsdgre
圣诞节科技感
f = open('ht.txt', encoding='utf-8')
data = f.readline()
print(data)
运行结果:
22222111113333
文件的写
写文件之前同样需要打开文件;
写文件的方式 1. f.write() 默认的写方式(会在文件的开头出写并且会覆盖掉原来位置的内容)
2. f.writelines() 一次写多行(要和readlines()结合使用)
补充:这里的 'r+' 也是一种操作方式 意为可读可写; 使用 'w' 方式的时候没有文件就会自动创建文件, open的时候不指定操作方式 会默认为是 'r' 方式
f = open('ht.txt', 'r+', encoding='utf-8') f.write('hello') f.close() f1 = open('ht.txt', encoding='utf-8') data = f1.read() f1.close() print(data)
运行结果:hello3333
45643131
86463425
3413
asfds
fsdgre
圣诞节科技感
文件的追加
追加文件之前同样需要打开文件;
追加文件的方式 f.open('文件名', 'a' ,encoding ='utf-8') f.write('写到文件最后')
f = open('ht.txt', 'a', encoding='utf-8') f.write('OK') f.close()
文件的关闭
文件只要使用open()函数打开在进行完操作之后都需要使用close()函数进行关闭,以达到关闭文件回收资源的效果;
with关键字
如果不想使用close() 我们可以在打开文件的时候使用with关键字 这样会保证文件正常关闭 并且不会抛出异常;
with 关键字使用的时候要注意句尾生成句柄 f 然后就可以使用句柄来进行操作;
with open('ht.txt', 'w', encoding='utf-8') as f: f.write('Bye')
二进制文件的读写操作
windows平台上硬盘的存储最终是以二进制形式存放数据,字符编码默认使用 unicode;使用二进制文件操作主要有两大优势:1. 节省空间 只在传输文件或者存储的时候才会进行编码 ; 2. 方便与linux平台的交互(linux系统文件是使用二进制存储)。
二进制形式的读
二进制文件的操作与传统的文件操作大同小异,不同的是操作方式变为 'rb' 'wb' 'ab' , 但是打开文件的时候不需要使用encoding指明编码格式;而是使用encode() 和 decode() 函数进行编码以及解码操作;需要注意编码
f = open('ht.txt', 'rb') data = f.read() print(data.decode('utf-8'))
二进制形式的写
在使用二进制进行写操作的时候需要注意在 write() 函数的内部加上编码格式 否则会抛出格式错误异常
f = open('ht.txt', 'wb') f.write('黄小德'.encode('utf-8'))

浙公网安备 33010602011771号