我正在尝试向csv文件的列追加信息。我有一个文本文件夹,我在文件夹中循环,在标题为“百分比”的标题下将单词的百分比(一个浮点数)添加到CSV。csv文件已经有其他标题和行,包含文本标题,年份,ID等信息。我的代码编译但不改变(追加到)csv文件。
with open(sys.argv[2]) as csvfile:
reader = csv.DictReader(csvfile)
os.chdir(sys.argv[1])
for row in reader:
text = row["id"] + ".txt"
if text in novel_folder:
(omitted this code to save time (calc perc)
with open(csvfile, "a") as csvfile2:
writer=csv.DictWriter(csvfile2,fieldnames=["percentage"])
writer.writerow({"percentage": perc})
我更改目录是因为这些文本位于我的工作目录中的一个文件夹中。然后循环遍历csv中的每一行,如果该行的id(文本名称)在文本文件夹(sys.argv [1])中,则计算百分比(省略),然后将该百分比附加到csv中的'percentage'标题中。sys.argv [2]是csv文件名,而sys.argv [1]是文本文件夹名。
下面是csv文件的第一行(标题):
author,id,title,year,percentage
1条答案
按热度按时间6rqinv9w1#
不能向CSV文件追加列。相反,您需要用所需的额外数据重写整行。您可以打开目标输出文件一次,然后在处理行时写入。从您读取的CSV文件中获取现有的字段名称,然后在写入时使用这些字段名称加上额外的“百分比”列。
通常最好不要在程序中更改目录。它很容易保持较长的文件名,你不运行的风险,混乱的任何相对路径名在使用中。