我尝试了几种方法将字符串追加到从另一个文件读取时写入文件的行(以及使用fileinput的位置)。我肯定错过了一些东西,但尝试不同的方法几个小时并没有解决问题。
最新方法如下,仍然会导致图像列表在数据行之后的新行上,目标是将它们输出到一行。
for datarow in oldfile:
rowcols = datarow.split('|')
imagelist = []
image_seed = rowcols[headers.index('Group ID')]+'_'+rowcols[headers.index('Case ID')]+'_'+rowcols[headers.index('Contact ID')]
if isfirstrow:
newfile.write(headerrow)
isfirstrow = False
else:
for imagename in imagefiles:
if image_seed in imagename:
imagelist.append(os.path.basename(imagename))
if len(imagelist) > 0:
imagelist.insert(0, datarow)
newfile.write('|'.join(imagelist)+'\n')
else: newfile.write(datarow)
提前感谢您输入!
答案 0 :(得分:0)
您可能在'\n'
的第一项或imagelist
之后有一些重要的datarow
。不幸的是,你没有说明你如何阅读oldfile
。
解决,清除'\n'
:
imagelist.insert(0, datarow.rstrip('\n')) # rstrip for clean on end
newfile.write('|'.join(x.strip('\n') for x in imagelist)+'\n') # strip: clean both ends
也许你应该读一读:How to debug small programs (#5)
您可能还需要清理
else: newfile.write(datarow.rstrip('\n')+'\n') # make it consistently have a \n