CSV在Python中被覆盖,而不是将行添加到CSV文件
问题描述:
我正在使用一系列列表将XML文档转换为CSV,以便省略XML数据的特定部分。我的代码显示如下:CSV在Python中被覆盖,而不是将行添加到CSV文件
tree=ET.parse('Comments.xml')
root = tree.getroot()
dict={}
Score=[]
PostID=[]
ID=[]
CreationDate=[]
UserID=[]
for child in root:
dict.update(child.attrib)
Score.append(dict['Score'])
PostID.append(dict['PostId'])
ID.append(dict['Id'])
CreationDate.append(dict['CreationDate'])
UserID.append(dict['UserId'])
with open('Comments.csv','wb') as csvfile:
writer=csv.writer(csvfile)
for x in (0,174304):
writer.writerow([Score[x],PostID[x],ID[x],CreationDate[x],UserID[x]])
我知道有可能做上述的清洁方法,但还没有真正能够找到他们,我不完全满意,无论使用XML。不幸的是,我创建(Comments.csv)的文件,只包含一对排意见,而不是174305.类似的问题已被证明在这个网站是因为
with open('Comments.csv','wb')
部分处于循环,这意味着文件反复打开并一次又一次地重写。煤矿是不是在一个循环中,虽然和我的输出最终被
5 3 1 2010-07-19T19:15:52.517 13
1 115374 221292 2014-09-14T02:04:27.553 805
可有人请向我解释为什么发生这种情况,以及如何我可能会去修复它?
谢谢
答
会使用附加代码而不是'wb'吗?
with open('Comments.csv','a') as csvfile:
writer=csv.writer(csvfile)
答
我发现这个代码的问题实际上是我在做for循环的方式。在上面的代码中,您可以看到我没有'xrange'或'range'语句,所以程序实际上只是在范围内进行第一个和最后一个条目,而不是其他任何其他条目。谢谢你的帮助!
不幸的是,这只是增加了相同的两个条目。 –