在Python 2.6中的两行之间的空行

12 浏览
0 Comments

在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\"enter\n如何删除这些空行?

0
0 Comments

这个问题的出现是因为在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])

通过以上的修改,问题应该就可以得到解决了。

0