Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/320.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 我们可以使用file.write从csv文件中提取行并写入它们吗_Python - Fatal编程技术网

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

Python 我们可以使用file.write从csv文件中提取行并写入它们吗,python,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文件并将其读取为

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,每行末尾都有。我想有些dos到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#

'row[17]'
row[17]
在Python中是不同的。前者是一个包含七个字符的字符串,后者是
元组中的第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))

DM.write(“,”.join(itemgetter(17,16,25,18,20,21,19,26,27,28,29,30,31,32,8,36,35,34)(行)))类型错误:itemgetter需要1个参数,得到18个
itemgetter()
必须同时接受和上的多个参数。并包括完整的回溯。请尝试中的代码。@JF我使用的是python 2。解决方案不起作用,抛出了相同的错误。另外,对于问题的第二部分,我没有逗号问题,我在每一行的末尾都有^M作为文本中的o/pfile@Rajarshi: 0. 我没有看到我所要求的问题的回溯(许多行包含
TypeError
)。1.你试过了吗?它会产生错误吗?2.我的代码使用了
'\n'
(注意:
lineterminator='\n'
)。这是我唯一的错误。我不知道为什么会出现控件m。