python 读取csv文件转换成utf8模式并保存
时间: 2024-09-09 19:02:29 浏览: 78
在Python中读取CSV文件,并将其内容转换为UTF-8编码格式并保存,通常可以使用内置的`csv`模块,结合`open`函数来完成。以下是具体的步骤和代码示例:
1. 使用`open`函数打开CSV文件,指定`encoding='utf-8'`参数以确保以UTF-8编码模式读取。
2. 创建一个`csv.reader`或`csv.DictReader`对象来读取文件,根据文件的具体格式(逗号分隔或字典格式)选择合适的对象。
3. 遍历读取到的数据。
4. 使用`open`函数创建或覆盖一个新文件,同样指定`encoding='utf-8'`,并以写入模式打开。
5. 将处理后的数据写入新文件。
以下是代码示例:
```python
import csv
# 打开原始的CSV文件,并设置读取编码为UTF-8
with open('original.csv', 'r', encoding='utf-8') as csvfile:
reader = csv.reader(csvfile)
data = list(reader) # 将数据读取成列表形式
# 将数据写入新的CSV文件,同样设置编码为UTF-8
with open('new.csv', 'w', newline='', encoding='utf-8') as csvfile:
writer = csv.writer(csvfile)
for row in data:
writer.writerow(row) # 将每一行数据写入新文件
```
如果CSV文件包含标题行,可以使用`csv.DictReader`和`csv.DictWriter`来更好地处理列名和数据。
```python
import csv
# 打开原始的CSV文件,并设置读取编码为UTF-8
with open('original.csv', 'r', encoding='utf-8') as csvfile:
reader = csv.DictReader(csvfile)
data = list(reader) # 将数据读取成字典列表形式
# 将数据写入新的CSV文件,同样设置编码为UTF-8
with open('new.csv', 'w', newline='', encoding='utf-8') as csvfile:
fieldnames = reader.fieldnames # 获取列名
writer = csv.DictWriter(csvfile, fieldnames=fieldnames)
writer.writeheader() # 写入标题行
for row in data:
writer.writerow(row) # 将每一行数据写入新文件
```
阅读全文