如何从 csv 中读取没有 header 的列并使用 Python 将输出保存在 txt 文件中?
How to read a column without header from csv and save the output in a txt file using Python?
我有一个包含很多列的文件 "TAB.csv"。我想从 CSV 文件中选择一列没有 header(该列的索引为 3)。然后创建一个新的文本文件 "NEW.txt" 并在其中写入该列(没有 header)。
下面的代码读取该列,但带有 header。如何省略 header 并将该列保存在新的文本文件中?
import csv
with open('TAB.csv','rb') as f:
reader = csv.reader(f)
for row in reader:
print row[3]
enumerate
是一个很好的函数,returns 是一个元组。它允许在 运行 通过迭代器时查看索引。
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")
另一种解决方案是从文件中读取一行(以跳过 header)。
这是@tmrlvi 所说的解决方案:它通过下一个函数跳过第一行(header):
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 图书馆的回答,我想说。最好使用 Pandas 库来完成此类任务,而不是编写自己的代码。 Pandas 的简单代码如下:
import pandas as pd
reader = pd.read_csv('TAB.csv', header = None)
我有一个包含很多列的文件 "TAB.csv"。我想从 CSV 文件中选择一列没有 header(该列的索引为 3)。然后创建一个新的文本文件 "NEW.txt" 并在其中写入该列(没有 header)。
下面的代码读取该列,但带有 header。如何省略 header 并将该列保存在新的文本文件中?
import csv
with open('TAB.csv','rb') as f:
reader = csv.reader(f)
for row in reader:
print row[3]
enumerate
是一个很好的函数,returns 是一个元组。它允许在 运行 通过迭代器时查看索引。
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")
另一种解决方案是从文件中读取一行(以跳过 header)。
这是@tmrlvi 所说的解决方案:它通过下一个函数跳过第一行(header):
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 图书馆的回答,我想说。最好使用 Pandas 库来完成此类任务,而不是编写自己的代码。 Pandas 的简单代码如下:
import pandas as pd
reader = pd.read_csv('TAB.csv', header = None)