Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/295.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
如何从csv读取没有标题的列,并使用Python将输出保存在txt文件中?_Python_Csv - Fatal编程技术网

如何从csv读取没有标题的列,并使用Python将输出保存在txt文件中?

如何从csv读取没有标题的列,并使用Python将输出保存在txt文件中?,python,csv,Python,Csv,我有一个包含许多列的文件“TAB.csv”。我想从CSV文件中选择一个没有标题的列(该列的索引为3)。然后创建一个新的文本文件“new.txt”,并在其中写入该列(无标题) 下面的代码读取该列,但带有标题。如何省略标题并将该列保存在新的文本文件中 import csv with open('TAB.csv','rb') as f: reader = csv.reader(f) for row in reader: print row[3] enumerate是一

我有一个包含许多列的文件“TAB.csv”。我想从CSV文件中选择一个没有标题的列(该列的索引为3)。然后创建一个新的文本文件“new.txt”,并在其中写入该列(无标题)

下面的代码读取该列,但带有标题。如何省略标题并将该列保存在新的文本文件中

import csv
with open('TAB.csv','rb') as f:
    reader = csv.reader(f)
    for row in reader:
        print row[3]

enumerate
是一个很好的返回元组的函数。它允许在运行迭代器时查看索引

import csv
with open('NEW.txt','wb') as outfile:
    with open('TAB.csv','rb') as f:
        reader = csv.reader(f)
        for index, row in enumerate(reader):
           if index > 0:
               outfile.write(row[3])
               outfile.write("\n")

另一个解决方案是从文件中读取一行(以跳过标题)。

这是@tmrlvi正在讨论的解决方案:它通过下一个函数跳过第一行(标题):

import csv

with open('TAB.csv','rb') as input_file:
    reader = csv.reader(input_file)
    output_file = open('output.csv','w')
    next(reader, None)

    for row in reader:
        row_str = row[3]
        output_file.write(row_str + '\n')

    output_file.close()
试试这个:

import csv

with open('TAB.csv', 'rb') as f, open('out.txt', 'wb') as g:
    reader = csv.reader(f)
    next(reader)            # skip header
    g.writelines(row[3] + '\n' for row in reader)

这是一个老问题,但我想补充一下我对熊猫图书馆的回答。最好使用Pandas库来完成这些任务,而不是编写自己的代码。熊猫的简单代码如下:

import pandas as pd
reader = pd.read_csv('TAB.csv', header = None)

这里的输出写在一行中。我需要获得一列数字,与csv文件服务器中的数字相同。如果输出只写入一行,请将
'\n'
替换为
'\r\n'
(您可能正在windows中工作)。您可以将其与更优雅的@avenet solution结合使用。无论如何,这段代码应该跳过标题。(它不写第一行)是的,我正在Windows上工作,“\r\n”解决方案解决了一个问题,现在没有标题。非常感谢。你能提供最少的输入和输出示例吗?reader=csv.reader(输入文件)output\u file=open('NEW.txt','w')工作正常:)谢谢@zone1,会解决的!!