python - Python-将数据附加到 CSV 并打印到新的 CSV
问题描述
import csv
with open("somecities.csv", "r") as csvinput:
with open(" somecities_update.csv", "w") as csvresult:
writer = csv.writer(csvresult, lineterminator='\n')
reader = csv.reader(csvinput)
all = []
headers = next(reader)
for row in reader:
all.append(row)
# writing to the new file from here
writer.write(headers)
for record in all:
writer.write(record)
somecities.csv 内容:
Country,Capital,CountryPop,AreaSqKm
Canada,Ottawa,35151728,9984670
USA,Washington DC,323127513,9833520
Japan,Tokyo,126740000,377972
Luxembourg,Luxembourg City,576249,2586
我想添加的 somecities_update 数据:
(Brazil, Brasília, 211224219, 8358140)
(China, Beijing, 1403500365, 9388211)
(Belgium, Brussels, 11250000, 30528)
在循环遍历包含数据的旧 CSV 文件的过程中,我已经做到了这一点,但现在我不知道去哪里包含新数据并将其打印在 somecities_update.csv 中。我应该如何完成此代码?
解决方案
我假设您想将“somecities_update.csv”的记录附加到“somecities.csv”的末尾。
为此,您可以在附加模式 ( mode='a'
) 中打开“somecities.csv”文件,从“somecities_update.csv”中读取每一行并将其复制到 somecities.csv”。
以下代码演示了这种插入:
import io
import csv
with io.open("somecities.csv", mode='a', encoding='utf-8') as dst:
writer = csv.writer(dst, lineterminator='\n')
with io.open(
"somecities_update.csv", mode='r', encoding='utf-8') as src:
reader = csv.reader(src)
headers = next(reader)
for record in reader:
writer.writerow(record)
警告:此脚本仅在“somecities.csv”文件已存在时才有效。如果没有,则不会生成标头。
注意:您需要使用writer.writerow
.
推荐阅读
- ruby-on-rails - 使用嵌入的 Rails 显示带有 ajax 的 html
- arrays - 如何使用 openpyxl 将复杂的 numpy 数组写入 excel
- python - 从不同结构的字典列表创建火花数据框
- ios - CFRunloopRun() 和简单的无限循环之间的区别?
- angularjs - 一个一个地执行解析器?
- indexing - Solr 前缀搜索与罗马数字 - 召回问题
- websocket - 如何修复 Flutter(Dart)WebSocket 上的错误“在收到完整标头之前已关闭连接”
- python - 接收 KeyError:“[Int64Index([ ... dtype='int64', length=1323)] 均不在 [columns] 中”
- python-3.x - 如何循环遍历 tkinter 标签 ['text] 内的字典列表?
- node.js - 试图从频道 ID 获取公会