我目前正在为我公司的一个项目工作。我的第一个任务是一个相对简单的算法,用于读取CSV文件,正确格式化,然后将其输出到CSV文件中。我使用的是Python 2.7
我设置它的简单方法现在只输出格式化为一行的数据:
'item1','item2','item3','LAST_ITEM',
一行中所需的输出是:
'item1','item2','item3','LAST_ITEM'
基本上,我不希望最后一个逗号出现在列表的最后一项中。这是我的简单代码:
csvfile = csv.DictReader('csvfile.csv', delimiter=',')
outputFile = open('outputfile.txt')
for row_index, row in enumerate(csvfile):
outputFile.write("'" + row['location'] + "',")
我知道必须有一种方法可以检查读者是否在最后一行,这样我就可以打印一行,不包括最后一个逗号。所以,我一直在阅读很多关于发电机和谷歌搜索的答案。不过,我无法完全理解如何做到这一点。
答案 0 :(得分:1)
您是要尝试从输入CSV文件的一列中提取值,并将这些值输出到一行中的CSV文件中?
您可以一次性使用join()
执行此操作:
import csv
with open('csvfile.csv') as infile, open('outputfile.txt', 'w') as outfile:
outfile.write(','.join("'{}'".format(row['location']) for row in csv.DictReader(infile)))
outfile.write("\n")
或者您可以使用csv.writer
输出到CSV文件:
import csv
with open('csvfile.csv') as infile, open('outputfile.txt', 'w') as outfile:
out_csv = csv.writer(outfile)
out_csv.writerow(["'{}'".format(row['location']) for row in csv.DictReader(infile)])