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

时间:2015-01-03 01:19:44

标签: 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]

4 个答案:

答案 0 :(得分:12)

这是@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()

答案 1 :(得分:6)

试试这个:

import csv

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

答案 2 :(得分: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")

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

答案 3 :(得分:2)

这是一个古老的问题,但我想补充一下关于熊猫图书馆的答案,我想说。最好将Pandas库用于此类任务,而不是编写自己的代码。而Pandas的简单代码就像:

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