嘿,大家好!今天咱们聊点实在的,说说用 Python 怎么往 .txt 文件里写入数据。这玩意儿,听着简单,但真用起来,门道可不少。尤其是对于咱们这种老是跟数据打交道的人来说,掌握它,那效率蹭蹭地往上涨啊!
话说,我第一次接触 Python 写文件,那可真是踩了不少坑。当时老板让我把一堆数据分析结果导出来,生成一个报告。我吭哧吭哧写了一堆代码,结果导出的文件,要么乱码,要么格式不对,简直想原地爆炸。后来,才发现,细节决定成败啊!
最基础的,就是使用 open()
函数。这玩意儿,就像打开一扇门,告诉 Python 你要操作哪个文件,用什么模式操作。比如,'w'
模式,就是写入模式,它会清空文件里原有的内容,然后把新的数据写进去。如果你不想清空,而是想在文件末尾追加内容,那就得用 'a'
模式。
python
file = open('my_data.txt', 'w') # 以写入模式打开文件,会覆盖原有内容
file.write("这是第一行数据。\n")
file.write("这是第二行数据。\n")
file.close()
瞧见没? \n
是换行符,这可不能忘了,不然所有的数据都会挤在一行里,看着就头疼。file.close()
也非常重要,写完一定要关闭文件,不然可能会出现数据丢失的情况。这就像你用完东西要放回原位一样,是个好习惯。
不过,每次都手动 close()
文件,感觉有点麻烦,对不对? Python 提供了 with
语句,它能自动帮你关闭文件,省心省力。
python
with open('my_data.txt', 'w') as file:
file.write("这是使用 with 语句写入的第一行数据。\n")
file.write("这是使用 with 语句写入的第二行数据。\n")
是不是清爽多了? with
语句就像一个管家,在你用完文件之后,自动帮你收拾好,不用你操心。
当然,写入数据,肯定不止写字符串那么简单。有时候,我们可能要写入数字、列表、字典等等。这时候,就需要用到字符串格式化了。
“`python
name = “张三”
age = 30
score = [90, 85, 95]
with open(‘student_info.txt’, ‘w’) as file:
file.write(f”姓名:{name}\n”) # f-string 格式化
file.write(f”年龄:{age}\n”)
file.write(f”成绩:{score}\n”)
“`
这里,我用了 f-string,这是 Python 3.6 之后才有的特性,非常方便。你也可以用 %
或者 .format()
来格式化字符串,效果是一样的。
还有一种情况,就是写入列表或者其他复杂的数据结构。这时候,我们可以先将数据转换成字符串,然后再写入文件。json
模块可以帮我们轻松实现这个功能。
“`python
import json
data = {
“name”: “李四”,
“age”: 25,
“city”: “北京”
}
with open(‘user_data.txt’, ‘w’) as file:
json.dump(data, file, ensure_ascii=False, indent=4)
“`
json.dump()
函数可以将 Python 对象转换成 JSON 字符串,并写入文件。ensure_ascii=False
可以保证写入中文的时候不会出现乱码。indent=4
可以让 JSON 字符串格式化输出,更易读。
说到乱码,这可是个老大难问题。Python 默认使用 UTF-8 编码,但有时候,文件可能会使用其他编码,比如 GBK。这时候,就需要指定文件的编码方式。
python
with open('data.txt', 'w', encoding='gbk') as file:
file.write("这是一行中文数据。\n")
指定编码方式,可以有效避免乱码问题。但一定要确保你使用的编码方式和文件的实际编码方式一致,否则还是会乱码。
另外,写入大量数据的时候,一次性写入可能会比较慢。这时候,可以分批写入,提高效率。
“`python
data = [str(i) + ‘\n’ for i in range(100000)]
with open(‘large_data.txt’, ‘w’) as file:
file.writelines(data)
“`
writelines()
函数可以一次性写入一个列表,但要注意,列表里的每个元素都必须是字符串。
还有一点很重要,就是错误处理。在写入文件的时候,可能会出现各种各样的错误,比如文件不存在、权限不足等等。我们需要用 try...except
语句来捕获这些错误,保证程序的健壮性。
python
try:
with open('non_existent_file.txt', 'w') as file:
file.write("这是一行数据。\n")
except FileNotFoundError:
print("文件不存在!")
except PermissionError:
print("权限不足!")
except Exception as e:
print(f"发生了未知错误:{e}")
养成良好的错误处理习惯,可以避免很多不必要的麻烦。
总结一下,Python 写入 .txt 文件,主要涉及以下几个方面:
open()
函数:打开文件,指定模式('w'
写入,'a'
追加)和编码方式。write()
和writelines()
函数:写入数据。with
语句:自动关闭文件。- 字符串格式化:将不同类型的数据转换成字符串。
json
模块:处理 JSON 数据。- 错误处理:使用
try...except
语句捕获错误。
希望这些技巧能帮助你更好地使用 Python 写入 .txt 文件。记住,实践是检验真理的唯一标准。多写代码,多踩坑,你才能真正掌握它!以后再也不用担心 Python 写文件的问题啦!
评论(0)