文件写入:将数据保存到硬盘
在 Python 中,文件写入是程序与外部世界交互的重要方式。它可以让你将程序运行的结果、用户的输入等数据保存到硬盘上的文件中,以便后续使用。本文将带你了解 Python 中文件写入的基本知识和常用方法。
以下文件打开模式支持写入操作:
- 从文件开头写入:
r+
,r+b
,w
,x
,wb
,w+
,w+b
。 这些模式会覆盖文件中已存在的内容(w
)或者允许读写(r+
)。 - 在现有文件末尾追加:
a
,ab
,a+
,a+b
。 这些模式会在文件末尾添加新的内容,而不会影响原有内容。
其中:
r
: 读模式w
: 写模式a
: 追加模式b
: 二进制模式 (用于处理非文本文件,如图片、音频等)+
: 读写模式 (可以同时进行读和写操作)x
: 创建并写入模式 (如果文件已存在,则操作会失败)
接下来,我们将学习如何使用 Python 将数据写入文件。
write()
方法:写入字符串
write(s)
方法用于将字符串 s
写入文件。它会返回写入的字符数(文本模式)或字节数(二进制模式)。
示例:
python
>>> s = "你好 世界\n谢谢"
>>> with open("info_out.txt", "w", encoding='utf-8') as f:
... num_chars = f.write(s)
... print(num_chars) # 打印写入的字符数
...
8 # '你好 世界\n谢谢' 共 8 个字符
>>>
代码解释:
s = "你好 世界\n谢谢"
: 定义一个包含中文和换行符的字符串。with open("info_out.txt", "w", encoding='utf-8') as f:
: 使用with open()
语句打开文件 "info_out.txt" 以进行写入操作 ("w"
模式)。encoding='utf-8'
指定使用 UTF-8 编码,以支持中文等 Unicode 字符。as f
将文件对象赋值给变量f
,方便后续操作。 使用with
语句可以确保文件在使用完毕后自动关闭,避免资源泄露。num_chars = f.write(s)
: 调用f.write(s)
将字符串s
写入文件。write()
方法返回写入的字符数,并将其赋值给变量num_chars
。print(num_chars)
: 打印写入的字符数。
现在,使用文本编辑器打开 info_out.txt
,你将会看到以下内容:
你好 世界
谢谢
writelines()
方法:写入字符串列表
writelines(lines)
方法用于将字符串列表 lines
写入文件。与 write()
方法不同,writelines()
方法不会自动添加行分隔符(换行符 \n
),因此你需要确保每个字符串的末尾包含换行符,如果需要换行的话。
示例:
python
>>> lines = ["你好 世界\n",
... "谢谢\n"]
>>> with open("info_out.txt", "w", encoding='utf-8') as f:
... f.writelines(lines)
...
>>>
代码解释:
lines = ["你好 世界\n", "谢谢\n"]
: 定义一个包含两个字符串的列表,每个字符串都以换行符结尾。with open("info_out.txt", "w", encoding='utf-8') as f:
: 使用with open()
语句打开文件 "info_out.txt" 以进行写入操作 ("w"
模式)。f.writelines(lines)
: 调用f.writelines(lines)
将字符串列表lines
写入文件。
现在,使用文本编辑器打开 info_out.txt
,你将会看到以下内容:
你好 世界
谢谢
请注意,文件末尾多了一个空行,这是因为列表中的最后一个字符串 "谢谢\n" 也包含一个换行符。