处理Python CSV文件读取的最后一行

时间:2016-01-11 00:01:55

标签: python python-2.7 csv

我目前正在为我公司的一个项目工作。我的第一个任务是一个相对简单的算法,用于读取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'] + "',")

我知道必须有一种方法可以检查读者是否在最后一行,这样我就可以打印一行,不包括最后一个逗号。所以,我一直在阅读很多关于发电机和谷歌搜索的答案。不过,我无法完全理解如何做到这一点。

1 个答案:

答案 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)])