我编写了以下python代码来读取列,即ID,年龄,性别,国家,从tsv文本文件注册。
import csv
IDs=[]
Genders=[]
Ages=[]
Countrys=[]
Registereds=[]
with open('Sample data.txt','r') as f:
next(f) # skip headings
reader=csv.reader(f,delimiter='\t')
for ID,Gender,Age,Country,Registered in reader:
IDs.append(ID)
Genders.append(Gender)
Ages.append(Age)
Countrys.append(Country)
Registereds.append(Registered)
pass
但它不起作用并抛出以下错误:
Traceback (most recent call last):
File "ext_col.py", line 34, in <module>
for ID,Gender,Age,Country,Registered in reader:
ValueError: need more than 0 values to unpack
文本文件包含超过100行的以下数据:
ID Gender Age Country Registered
user_000001 m Japan Aug 13, 2006
user_000002 f Peru Feb 24, 2006
user_000003 m 22 United States Oct 30, 2005
user_000004 f Apr 26, 2006
user_000005 m Bulgaria Jun 29, 2006
user_000006 24 Russian Federation May 18, 2006
user_000007 f United States Jan 22, 2006
user_000008 m 23 Slovakia Sep 28, 2006
user_000009 f 19 United States Jan 13, 2007
user_000010 m 19 Poland May 4, 200
这只是该文本文件中的一小部分数据。
此外,我如何将每个列的数据存储在单独的文本文件中,以便以后只需在必要时打开所需的列文件,就可以轻松地在算法中使用它们?这实际上是我的最终目标。
提前致谢。
答案 0 :(得分:0)
csv.reader()返回一个字符串列表,你的代码需要一个元组。
这应该起作用:
for row in reader:
IDs.append(row[0])
Genders.append(row[1])
Ages.append(row[2])
Countrys.append(row[3])
Registereds.append(row[4])
pass
答案 1 :(得分:0)
finish()
Dict Reader使用标题级别列名称创建字典,使用列标题作为键,单元格作为值。