简介:在本Python CSV读写教程中,你将学习如何使用Python内置的CSV模块将单行或多行数据写入CSV文件,包括CSV写入行和Python CSV写入多行的代码实现步骤。
Python CSV写入行的步骤
Python要将数据写入CSV文件,你需要遵循以下步骤:
- 首先,使用open()函数打开要写入的CSV文件(w模式)。
- 其次,通过调用CSV模块的writer()函数创建一个CSV写入器对象。
- 第三,通过调用CSV写入器对象的writerow()或writerws()方法实现Python CSV一行一行写入。
- 最后,在完成向文件写入数据后关闭文件。
以下代码演示了上述步骤并实现了Python CSV写入行:
import csv
# 以写模式打开文件
f = open('path/to/csv_file', 'w')
# 创建CSV写入器
writer = csv.writer(f)
# 向CSV文件写入一行
writer.writerow(row)
# 关闭文件
f.close()
如果你使用with语句,它会更短,这样你就不需要调用close()方法来显式关闭文件:
import csv
# 以写模式打开文件
with open('path/to/csv_file', 'w') as f:
# 创建CSV写入器
writer = csv.writer(f)
# 向CSV文件写入一行
writer.writerow(row)
如果处理的是非ascii字符,则需要在开放函数中指定字符编码。
下面举例说明如何将UTF-8字符写入CSV文件:
import csv
# 以写模式打开文件
with open('path/to/csv_file', 'w', encoding='UTF8') as f:
# 创建CSV写入器
writer = csv.writer(f)
# 向CSV文件写入一行
writer.writerow(row)
Python CSV写入行的简单例子
下面的例子演示了Python如何将一个数据行写入到CSV文件中:
import csv
header = ['name', 'area', 'country_code2', 'country_code3']
data = ['Afghanistan', 652090, 'AF', 'AFG']
with open('countries.csv', 'w', encoding='UTF8') as f:
writer = csv.writer(f)
# 写入头
writer.writerow(header)
# 写入数据
writer.writerow(data)
如果你打开countries.csv,你会看到一个问题。它有一个额外的空行之间的两个后续行:
要删除空行,你需要像这样将关键字参数newline=''传递给open()函数:
import csv
header = ['name', 'area', 'country_code2', 'country_code3']
data = ['Afghanistan', 652090, 'AF', 'AFG']
with open('countries.csv', 'w', encoding='UTF8', newline='') as f:
writer = csv.writer(f)
# 写入头
writer.writerow(header)
# 写入数据
writer.writerow(data)
输入如下:
Python CSV写入多行的操作步骤
Python CSV要一次性写入多行时,可以使用CSV写入器对象的writerows()方法。
下面演示如何使用writerows()方法将多行写入到countries.csv文件中:
import csv
header = ['name', 'area', 'country_code2', 'country_code3']
data = [
['Albania', 28748, 'AL', 'ALB'],
['Algeria', 2381741, 'DZ', 'DZA'],
['American Samoa', 199, 'AS', 'ASM'],
['Andorra', 468, 'AD', 'AND'],
['Angola', 1246700, 'AO', 'AGO']
]
with open('countries.csv', 'w', encoding='UTF8', newline='') as f:
writer = csv.writer(f)
# 写入头
writer.writerow(header)
# Python CSV写入多行数据
writer.writerows(data)
使用DictWriter类写入CSV文件
如果CSV文件的每一行都是一个字典,则可以使用CSV模块的DictWriter类将字典写入CSV文件。
下面的例子演示了如何使用DictWriter类将数据写入CSV文件:
import csv
# csv头
fieldnames = ['name', 'area', 'country_code2', 'country_code3']
# csv data
rows = [
{'name': 'Albania',
'area': 28748,
'country_code2': 'AL',
'country_code3': 'ALB'},
{'name': 'Algeria',
'area': 2381741,
'country_code2': 'DZ',
'country_code3': 'DZA'},
{'name': 'American Samoa',
'area': 199,
'country_code2': 'AS',
'country_code3': 'ASM'}
]
with open('countries.csv', 'w', encoding='UTF8', newline='') as f:
writer = csv.DictWriter(f, fieldnames=fieldnames)
writer.writeheader()
writer.writerows(rows)
以上Python代码是如何给CSV写入多行的?下面是详细解释:
- 首先,定义包含CSV文件的字段名和数据行的变量。
- 接下来,通过调用open()函数打开要写入的CSV文件。
- 然后,通过向它传递文件对象(f)和fieldnames参数,创建一个DictWriter类的新实例。
- 然后,通过调用writeheader()方法写入CSV文件的头文件。
- 最后,使用writerows()方法给CSV写入多行数据。
Python CSV读写总结
使用CSV Writer或DictWriter类将数据写入CSV文件。以上就是Python CSV写入行的基本操作介绍,包括Python CSV一行一行写入和CSV写入多行的代码实现,希望这些内容可以帮助到你!