在Python 2.6中的两行之间的空行
在Python 2.6中的两行之间的空行
我使用的是Python 2.6,并且想要在一个csv文件中进行写入。这是我的代码。\n
fieldnames = ['日期', 'AICENT MO', 'AICENT MT', 'BELGACOM MO', 'BELGACOM MT', 'CITIC MO', 'CITIC MT', 'SYBASE MO','SYBASE MT'] csvfile = open('%s%s_%s.csv'%(报告,模块名称,上个月), 'w') writer = csv.writer(csvfile, dialect='excel') writer.writerow(fieldnames) 列表 = [日期_文件,列1,列2,列3,列4,列5,列6,列7,列8] writer.writerow(列表)
\n我的输出结果是:\n\n如何删除这些空行?
这个问题的出现是因为在Python 2.6中的代码中存在空行的问题。解决方法是将文件以二进制方式打开,并且对要写入文件的列表进行调整。
在这个问题的回答中,提到该问题是Writing to CSV with Python adds blank lines问题的重复。问题的原因是文件的打开方式不正确。
原始代码中使用了open('%s%s_%s.csv'%(report,module_name,lastMonth), 'w')
来打开文件,需要将其修改为open('%s%s_%s.csv'%(report,module_name,lastMonth), 'wb')
。也就是说,需要以二进制方式打开文件。
但是,即使修改了文件的打开方式,问题仍然存在。
问题的真正原因是要写入文件的列表的格式问题。解决办法是将列表中的数据调整为列表内嵌列表的形式,这样输出的文件就不会有额外的空行了。
例如,可以将数据调整为如下形式:
hello = [['Me','You'],['293', '219'],['13','15']]
然后,在写入文件时,可以使用如下代码进行处理:
length = len(hello[0]) for y in range(length): csv_writer.writerow([x[y] for x in hello])
通过以上的修改,问题应该就可以得到解决了。