Python读取csv文件是UTF-8怎么写入
时间: 2023-10-09 21:13:53 浏览: 59
一个新的csv文件的编码格式为GBK?
可以通过以下代码来实现:
``` python
import csv
# 读取原文件
with open('input.csv', 'r', encoding='utf-8') as f:
reader = csv.reader(f)
rows = [row for row in reader]
# 写入新文件
with open('output.csv', 'w', encoding='GBK', newline='') as f:
writer = csv.writer(f)
writer.writerows(rows)
```
在读取原文件时,使用了`encoding='utf-8'`设置编码格式。在写入新文件时,使用了`encoding='GBK'`设置新文件的编码格式。同时,还需要设置`newline=''`来避免出现换行符的问题。
相关问题
python 读取csv文件 转为UTF-8
要将 CSV 文件转换为 UTF-8 编码格式,可以按照以下步骤操作:
1. 使用 Python 内置的 `csv` 模块读取 CSV 文件。例如:
```
import csv
with open('file.csv', 'r', encoding='原始编码格式') as f:
reader = csv.reader(f)
for row in reader:
# 处理每一行数据
```
2. 将读取到的数据转换为 UTF-8 编码格式。例如:
```
import csv
with open('file.csv', 'r', encoding='原始编码格式') as f:
reader = csv.reader((line.encode('utf-8') for line in f), delimiter=',')
for row in reader:
# 处理每一行数据
```
在这个示例中,我们使用了一个生成器表达式将每一行数据转换为 UTF-8 编码格式,并将转换后的数据传递给 `csv.reader` 对象。此外,我们还指定了 CSV 文件中使用的分隔符为逗号(默认值为英文半角逗号)。
3. 对转换后的数据进行处理或者写入新的 CSV 文件。例如:
```
import csv
with open('file.csv', 'r', encoding='原始编码格式') as f:
reader = csv.reader((line.encode('utf-8') for line in f), delimiter=',')
with open('new_file.csv', 'w', encoding='utf-8', newline='') as f_out:
writer = csv.writer(f_out)
for row in reader:
# 处理每一行数据
# ...
# 将处理后的数据写入新的 CSV 文件
writer.writerow(processed_row)
```
在这个示例中,我们使用了一个新的 `csv.writer` 对象将处理后的数据写入到一个新的 CSV 文件中。需要注意的是,我们在打开文件时指定的编码格式为 UTF-8,并将 `newline` 参数设置为空字符串,以避免写入的数据中出现多余的空行。
python将csv文件从utf-8转成gbk
可以使用Python内置的csv和codecs库来实现将utf-8编码的csv文件转换成gbk编码的csv文件。
具体步骤如下:
1.导入csv和codecs库
```python
import csv
import codecs
```
2.打开原文件和目标文件
```python
with codecs.open('input.csv', 'r', 'utf-8') as f, \
codecs.open('output.csv', 'w', 'gbk') as fw:
```
3.使用csv.reader读取原文件数据,并使用csv.writer将数据写入到目标文件
```python
reader = csv.reader(f)
writer = csv.writer(fw)
for row in reader:
writer.writerow(row)
```
完整代码如下:
```python
import csv
import codecs
with codecs.open('input.csv', 'r', 'utf-8') as f, \
codecs.open('output.csv', 'w', 'gbk') as fw:
reader = csv.reader(f)
writer = csv.writer(fw)
for row in reader:
writer.writerow(row)
```
执行以上代码后,即可将utf-8编码的input.csv文件转换成gbk编码的output.csv文件。