Python 读写文本文件
HDUZN

文本文件,就是可以用记事本程序打开的纯文本内容的文件。

格式可以有很多,比如.txt,.log,.json,后缀是啥也不是很重要,反正内容是纯文本就可以了。

Python中文本文件的读写,用一个内置的open函数,打开文件,获得文件对象。。

open函数

open函数参数如下:

1
2
3
4
5
6
7
8
9
10
open(
file,
mode='r',
buffering=-1,
encoding=None,
errors=None,
newline=None,
closefd=True,
opener=None
)

其中常用的就这3个参数:

  • file:打开文件的路径,可以是相对路径,也可以是绝对路径。
  • mode:打开文件的模式,常用就3种,'r'表示只读,'w'表示只写,'a'表示追加;默认是’r’。
  • encoding:字符编码。最常用的就’utf-8’,’gb2312’。

读取文本文件

1
2
3
4
5
6
7
8
9
10
11
12
# 读取文本文件内容
def read_file(txt_file):
data = []
with open(txt_file, 'r', encoding='utf-8') as f:
# s = f.read() # 读取全部文件内容
# 一行一行读取,存入List
for line in f:
data.append(line.strip('\n')) # 读取一行

# f.close()

return data

读取文件时,最常用的还是按行、一行一行读取出来,再进行处理。

这里读取一行的时候,用strip('\n')方法处理了下,就是去除一行结尾处的换行符。
最后返回一个List。

这里为啥用的with as 方法打开文件,而不是直接用 f = open(txt_file, 'r', encoding='utf-8') ,好处在之前一篇文章里写了:Python中with - as用法

写入文本文件

1
2
3
4
5
6
7
# 写入文本文件
def write_file(txt_file):
data = ['aaaa', 'bbbb']
with open(txt_file, 'w', encoding='utf-8') as f:
# 一行一行写入
for line in data:
f.write(line+'\n') # 写入一行

读取文件也一样,一般我们写入一个List的数据,write的时候,后面加个'\n',就可以换行、一行一行写入了。

追加写入跟写入文件一样的,就把open函数中,参数mode的'w'改成'a'就行了。

关于open函数的mode参数:

  • 'rb':表示二进制方式读
  • 'rw':表示二进制方式写
  • 本文标题:Python 读写文本文件
  • 本文作者:HDUZN
  • 创建时间:2022-06-06 21:39:13
  • 本文链接:http://hduzn.cn/2022/06/06/Python-读写文本文件/
  • 版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
 评论