以下是 Python 读写 CSV 文件并增加行列的攻略。
1. 读取 CSV 文件
读取 CSV 文件需要用到 csv 模块。csv 模块提供了两种读取 CSV 文件的方式,即使用 csv.reader() 函数或 csv.DictReader() 函数。
1.1 使用 csv.reader() 函数
csv.reader() 函数将 CSV 文件中的每一行转换为列表,可以使用 for 循环逐行读取 CSV 文件。以下是一个读取 CSV 文件并打印每一行的示例:
import csv
with open('example.csv', newline='') as csvfile:
reader = csv.reader(csvfile)
for row in reader:
print(row)
其中 open() 函数用于打开 CSV 文件,并指定 newline='' 可以避免读取 CSV 文件时出现空白行。
1.2 使用 csv.DictReader() 函数
csv.DictReader() 函数将 CSV 文件中的每一行转换为字典,可以使用 for 循环逐行读取 CSV 文件。以下是一个读取 CSV 文件并打印每一行的示例:
import csv
with open('example.csv', newline='') as csvfile:
reader = csv.DictReader(csvfile)
for row in reader:
print(row)
其中 open() 函数用于打开 CSV 文件,并指定 newline='' 可以避免读取 CSV 文件时出现空白行。
2. 写入 CSV 文件
写入 CSV 文件同样需要用到 csv 模块。csv 模块提供了两种写入 CSV 文件的方式,即使用 csv.writer() 函数或 csv.DictWriter() 函数。
2.1 使用 csv.writer() 函数
csv.writer() 函数将列表写入 CSV 文件,并使用 writerow() 方法写入每一行。以下是一个将列表写入 CSV 文件的示例:
import csv
with open('example.csv', 'w', newline='') as csvfile:
writer = csv.writer(csvfile)
writer.writerow(['Name', 'Age', 'Country'])
writer.writerow(['Alice', '25', 'USA'])
writer.writerow(['Bob', '30', 'Canada'])
其中 open() 函数中的 'w' 参数表示以写入方式打开文件,并指定 newline='' 可以避免写入 CSV 文件时出现空白行。
2.2 使用 csv.DictWriter() 函数
csv.DictWriter() 函数将字典写入 CSV 文件,并使用 writeheader() 方法写入表头信息。以下是一个将字典写入 CSV 文件的示例:
import csv
with open('example.csv', 'w', newline='') as csvfile:
fieldnames = ['Name', 'Age', 'Country']
writer = csv.DictWriter(csvfile, fieldnames=fieldnames)
writer.writeheader()
writer.writerow({'Name': 'Alice', 'Age': '25', 'Country': 'USA'})
writer.writerow({'Name': 'Bob', 'Age': '30', 'Country': 'Canada'})
其中 open() 函数中的 'w' 参数表示以写入方式打开文件,并指定 newline='' 可以避免写入 CSV 文件时出现空白行。
3. 增加行列
增加行列需要先读取 CSV 文件并存储为列表或字典,然后再添加行列信息后写入 CSV 文件。
3.1 增加行
增加行需要先读取 CSV 文件并存储为列表或字典,然后使用 append() 方法向列表或字典中添加新的行信息,最后写入 CSV 文件。
以下是一个将列表写入 CSV 文件并增加行信息的示例:
import csv
# 读取 CSV 文件并存储为列表
rows = []
with open('example.csv', newline='') as csvfile:
reader = csv.reader(csvfile)
for row in reader:
rows.append(row)
# 增加行信息
new_row = ['Charlie', '35', 'UK']
rows.append(new_row)
# 写入 CSV 文件
with open('example.csv', 'w', newline='') as csvfile:
writer = csv.writer(csvfile)
for row in rows:
writer.writerow(row)
其中 append() 方法向列表中添加新的行信息。
3.2 增加列
增加列需要先读取 CSV 文件并存储为列表或字典,然后使用字典的 update() 方法向每一行添加新的列信息,最后写入 CSV 文件。
以下是一个将字典写入 CSV 文件并增加列信息的示例:
import csv
# 读取 CSV 文件并存储为字典
rows = []
with open('example.csv', newline='') as csvfile:
reader = csv.DictReader(csvfile)
for row in reader:
rows.append(row)
# 增加列信息
for row in rows:
row.update({'City': 'New York'})
# 写入 CSV 文件
with open('example.csv', 'w', newline='') as csvfile:
fieldnames = ['Name', 'Age', 'Country', 'City']
writer = csv.DictWriter(csvfile, fieldnames=fieldnames)
writer.writeheader()
for row in rows:
writer.writerow(row)
其中 update() 方法向每一行添加新的列信息。注意,因为增加列信息后表头信息也要增加,所以在写入 CSV 文件时需要指定新的 fieldnames。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python读写csv文件并增加行列的实例代码 - Python技术站