在Python3中,当你需要写入包含中文字符的文件时,确保使用`encoding='utf-8'`参数可以避免乱码问题。以下是两个常见场景的示例代码:
JSON文件写入
import json
data = [
{'id': '002', 'name': '小明', 'type': 'Grass', 'typeTwo': 'Poison'}
]
使用utf-8编码打开文件
with open('sty.json', 'w', encoding='utf-8') as f:
设置ensure_ascii为False以写入非ASCII字符
json.dump(data, f, ensure_ascii=False)
CSV文件写入
import csv
data = [
['American', '美国人'],
['Chinese', '中国人']
]
使用utf-8-sig编码打开文件
with open('results.csv', 'w', newline='', encoding='utf-8-sig') as f:
w = csv.writer(f)
w.writerows(data)
注意事项
当使用`open`函数打开文件进行写入时,指定`encoding='utf-8'`或`encoding='utf-8-sig'`参数可以确保中文字符正确写入。
`utf-8-sig`编码的文件在Windows系统中通常以BOM(Byte Order Mark)开头,用于指示文件的编码。
如果文件已经存在乱码,可以尝试使用文本编辑器(如Notepad++或EmEditor)打开文件,然后另存为UTF-8编码的文件。