嘿,大家好!今天咱们聊点实在的,说说用 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 写文件的问题啦!

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。