繁体   English   中英

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

[英]How to read a column without header from csv and save the output in a txt file using Python?

我有一个包含许多列的文件“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]

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

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")

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM