我们可以使用file.write从csv文件中提取行并写入它们

时间:2014-09-04 18:07:34

标签: python

打开csv文件并将其读作

reader = csv.reader(f, delimiter='|', quotechar='"')

我也打开了文件

DM = open('DM_FILE.txt', 'w+')

现在我想从csv文件中提取特定字段并保存在txt文件中。所以我使用了这个

 DM.write('row[17]+,+row[16]+,+row[25]\n')

但我得到这样的输出。

 row[17]+,+row[16]+,+row[25]+,+row[18]

它很简单,但不知道为什么它不会来。我尝试使用csv.writerow工作。但输出来了contrlM.like ^ M每行结束。有些问题unix问题我猜我自己跑了它在unix中。需要两个解决方案。

 DM = csv.writer(open('DM_FILE.txt', 'w+'))
 DM.writerow([row[17]+row[16]+row[25]+row[18]])

同样期望的输出就像

 ,J,13260,,GARMAN,,STEVE,FAIRFIELDLN,
 ,J,1,,CMA1235,,,LOCKHEED###BLVD,MZ#

1 个答案:

答案 0 :(得分:0)

'row[17]'row[17]在Python中有所不同。前者是一个包含七个字符的字符串,后者是row元组中的第18个字符。

将逗号分隔的给定字段(由其索引指定)写入DM文件:

from operator import itemgetter

DM.write(','.join(itemgetter(17, 16, 25, 18)(row)))
DM.write('\n')

或者如果逗号可能在任何字段中,那么您可以使用csv模块来逃避它:

with open('TM_FILE.txt', 'wb') as DM: # assume Python 2
    writer = csv.writer(DM, lineterminator='\n')
    writer.writerow(itemgetter(17, 16, 25, 18)(row))