我有一个csv文件,我需要改变每一行的日期值。要更改的日期显示在csv的每一行中完全相同的列中。你知道吗
import csv
firstfile = open('example.csv',"r")
firstReader = csv.reader(firstfile, delimiter='|')
firstData = list(firstReader)
DateToChange = firstData[1][25]
ChangedDate = '2018-09-30'
for row in firstReader:
for column in row:
print(column)
if column==DateToChange:
#Change the date
outputFile = open("output.csv","w")
outputFile.writelines(firstfile)
outputFile.close()
我试图抓取和存储一个日期已经在csv和改变它使用for循环,然后输出与更改日期的原始文件。然而,上面的代码似乎什么也做不了。我是Python新手,所以可能不了解如何正确使用for循环。你知道吗
非常感谢您的帮助!你知道吗
调用
list(firstReader)
时,将所有CSV数据读入firstData
列表。当您稍后调用for row in firstReader:
时,firstReader
已经用完了,所以不会循环任何内容。相反,尝试将其更改为for row in firstData:
。你知道吗另外,当您试图写入文件时,您试图将
firstFile
写入文件,而不是更改的行。我会让你去弄清楚如何更新行中的日期,但是在那之后你需要给文件一个字符串来写。这个字符串应该是', '.join(row)
,所以outputFile.write(', '.join(row))
。你知道吗最后,应该只打开一次输出文件,而不是每次在循环中打开。将
open
调用移到循环上方,close
调用移到循环后面。当你有时间的时候,在google上搜索“python context manager open file”,寻找更好的方法来管理打开的文件。你知道吗你可以用熊猫和裸体。在这里,我从头开始创建一个数据帧,但您可以直接从.csv加载它:
相关问题 更多 >
编程相关推荐