怎么解决使用python写入到csv乱码的问题?
时间: 2024-12-14 14:20:57 浏览: 15
MYSQL插入中文解决方法
在Python中,如果从非UTF-8编码的文本文件(比如某些Windows系统下是GBK编码)写入CSV文件时可能会遇到乱码问题。下面是一些解决方法:
1. **检查源文件编码**:
确定输入文件的原始编码。如果是GBK等字符集,需要转换成UTF-8。可以使用`chardet`库来检测:
```python
import chardet
with open('source.txt', 'rb') as f:
result = chardet.detect(f.read())
print(result['encoding'])
```
2. **指定编码读取和写入**:
将读取和写入函数指定为正确的编码格式。例如:
```python
import csv
with open('source.txt', encoding='GBK') as source, \
open('output.csv', 'w', newline='', encoding='utf-8') as target:
reader = csv.reader(source)
writer = csv.writer(target)
for row in reader:
writer.writerow(row)
```
3. **使用pandas处理**:
如果数据量大,可以使用pandas库,它更方便处理这类问题:
```python
import pandas as pd
df = pd.read_csv('source.txt', encoding='GBK')
df.to_csv('output.csv', index=False, encoding='utf-8-sig') # 'utf-8-sig' 标志去除BOM头
```
阅读全文