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

处理Python CSV文件读取中的最后一行,python,python-2.7,csv,Python,Python 2.7,Csv,我目前正在为我的公司做一个项目。我的第一个任务是一个相对简单的算法,用于读取CSV文件,正确格式化它,然后将其输出到CSV文件中。我正在使用Python 2.7 我设置它的简单方法现在只输出一行格式的数据,如下所示: 'item1','item2','item3','LAST_ITEM', 一行中的期望输出为: 'item1','item2','item3','LAST_ITEM' 基本上,我不希望最后一个逗号出现在列表的最后一项中。以下是我的简单代码: csvfile = csv.Dict

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

我知道一定有一种方法可以检查阅读器是否在最后一行,这样我就可以简单地打印一行,不包括最后一个逗号。所以,我读了很多关于发电机的书,在谷歌上搜索了很多答案。不过,我还是不知道该怎么做

您正试图从输入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)])

您试图在输入时使用
csv.DictReader
,但在输出时不使用等效项的原因是什么?另外-方便查看isLast的本意是什么-要回答您的问题,社区需要更多-您还可能会混淆行(可能是行)和列。。。是哪一个?我道歉!!我一直在尝试不同的选项,它的意思是只是枚举(csvfile)。它只是复制/粘贴不正确。此外,我只是在这里使用print函数而不是file.write()来快速测试输出,而不必每次都写入文件。您还需要添加所需的输入/输出-您遇到了一个问题(我想)如果您没有尝试以错误的方式测试它,这不会是一个问题:)谢谢您的评论。我现在已经添加了所需的输出。这是我第一次在这里提问,所以谢谢你的建议。谢谢!虽然输出非常接近我想要的,但仍然缺少单引号。我所做的只是将最后一行重写为
outfile.write(“,”.join(““+”行['location']+”,用于csv.DictReader(infle))中的行)
,它成功了@记者0:哦,是的,我错过了引语。我修复了现在使用
“{}”.format()
的答案,我认为这比字符串串联更好。