Python 学习笔记【文件读写】

1 读文件

1.1 读文本文件

读文件一般包括如下三个步骤:

try:
    f = open('/path/to/file', 'r')# 打开文件
    print(f.read()) #读取文件内容
finally:
    if f:
        f.close()# 关闭连接

简写方式:【Python引入了with语句来自动帮我们调用close()方法, 和之前的 try...finally...close()  】

with open('/path/to/file', 'r') as f:
    print(f.read())

文件读取方法:

  • 如果文件很小,read()一次性读取最方便;
  • 如果不能确定文件大小,反复调用read(size)比较保险:每次最多读取size个字节的内容
  • readline()可以每次读取一行内容
  • 如果是配置文件,调用readlines()最方便:一次读取所有内容并按行返回list

 1.2 读二进制文件(音视频)

>>> f = open('/Users/michael/test.jpg', 'rb')

 1.3 指定读取文件的字符编码

>>> f = open('/Users/michael/gbk.txt', 'r', encoding='gbk')

针对包含有非法编码字符的文件,可能遇到UnicodeDecoderError,可通过open函数的errors=’ignore‘忽略
>>> f = open('/Users/michael/gbk.txt', 'r', encoding='gbk', errors='ignore') 

 

2 写文件

方法与度文件一样,这是模式为 w

建议with写法:

with open('/Users/michael/test.txt', 'w') as f:
    f.write('Hello, world!')

注:写文件时,操作系统不会直接把数据写入磁盘,而是放到内存缓存起来,空闲的时候再慢慢写。如果没有调用close()方法,操作系统不会直接把内存中的缓存数据写到磁盘,可能会有部分数据丢失。

  • w:覆盖存在的文件
  • a:追加在存在文件后

 

3 内存读写

  • 字符串读写 StringIO
  • 二进制数据读写 BytesIO

参考:https://www.liaoxuefeng.com/wiki/1016959663602400/1017609424203904

猜你喜欢

转载自www.cnblogs.com/wooluwalker/p/12243225.html
今日推荐