Python:删除CSV标题行并重写新标题行
还在自学python,所以如果我的代码很糟糕,请不要恨我 我的代码:Python:删除CSV标题行并重写新标题行,python,csv,header,Python,Csv,Header,还在自学python,所以如果我的代码很糟糕,请不要恨我 我的代码: ifile = csv.reader(open("TE.csv",'rb')) shutil.copy("TE.csv","temp") tempfile = csv.reader(open("temp","rb")) ofile = csv.writer(open("TE-RESULTS.csv","ab")) for row in ifile: #do some web scraping stuff here
ifile = csv.reader(open("TE.csv",'rb'))
shutil.copy("TE.csv","temp")
tempfile = csv.reader(open("temp","rb"))
ofile = csv.writer(open("TE-RESULTS.csv","ab"))
for row in ifile:
#do some web scraping stuff here
VC_s = str(cells[1].find(text=True))
VC_i = str(cells[2].find(text=True))
VT_s = str(cells[4].find(text=True))
entry = [VC_s, VC_i, VT_s]
rowAdd = tempfile.next()
ofile.writerow(rowAdd + entry)
问题:我从一个CSV开始,我必须在结尾添加3列。使用上面的代码,我得到以下输出:
HEADER1 HEADER2 HEADER3 result1 result2 result3
autocheck C:\check 1.jpg result1 result2 result3
services C:\svcs 2.jpg result1 result2 result3
我的所需的输出:
HEADER1 HEADER2 HEADER3 HEADER4 HEADER5 HEADER6
autocheck C:\check 1.jpg result1 result2 result3
services C:\svcs 2.jpg result1 result2 result3
修复代码以获得所需输出的最佳方法是什么?我最初的想法是删除HEADERS行,并在TE-RESULTS.csv文件中将其替换为新的HEADERS行。在for循环之前处理header行
rowAdd = tempfile.next()
ofile.writerow(rowAdd + ['HEADER4', 'HEADER5', 'HEADER6'])
for ...
谢谢,但现在输出将重复每行的前三个标题。我已经能够通过如下更改最后一部分来修复此问题:
rowAdd2=tempfile.next()of ile.writerow(rowAdd2+entry)
,但它给了我一个StopIteration错误。如何消除这个错误?您是将代码放在for循环之前的答案中,还是放在for循环内部?就像您给出的答案一样放在循环之前。就在“ifile:中的for行”之前,它不应该重复标题。你得到StopIteration的原因是。。。。。等等,为什么您要将TE.csv
复制到temp
然后打开这两个文件,而您应该只使用行
而不是行添加
?感谢您的指导。我删除了temp
文件,并将它们改为row
,而不是rowAdd
。这现在非常有效!