如何从csv读取没有标题的列,并使用Python将输出保存在txt文件中?
我有一个包含许多列的文件“TAB.csv”。我想从CSV文件中选择一个没有标题的列(该列的索引为3)。然后创建一个新的文本文件“new.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是一
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,会解决的!!