我有一个很大的.txt数据文件。我无法从列表列表中获取一行数据。相反,我得到的是列而不是条目。
这是我一直在使用的示例数据集......
['6/1/13', '9852', '54946', '47498.85', '220999.39', '26752', '2165', '0', '0']
['6/2/13', '17590', '72536', '70659.35', '291658.75', '28248', '4723', '4723', '289']
['6/3/13', '8599', '81135', '31547.41', '323206.16', '29611', '1160', '1160', '221']
['6/4/13', '17589', '98724', '106170.69', '429376.85', '31090', '2922', '2922', '394']
以下是我一直尝试的代码......
file = open("blahblah.txt","r")
data = []
for line in file:
parts = line.strip().split()
data.append(parts)
print parts [0]
以下是我输入此代码时得到的输出。
6/1/13
6/2/13
6/3/13
6/4/13
当我要求打印parts[0]
时,它不应仅列出列表列表的第一行吗?相反,它给了我4个列表的第一列中的条目。如何修复我刚刚获得以['6/1/13']
答案 0 :(得分:1)
请查看以下代码
for line in file:
parts = line.strip().split()
data.append(parts)
print parts [0]
首先,您的代码不起作用。即使它工作,print parts [0]
指令也会在每次迭代中执行。因此,您将获得每个列表的第一部分。
目前尚不清楚文件的外观。我假设它就像你的样本数据一样。所以下面的代码可以工作。
import re
file = open("example.txt","r")
data = []
for line in file:
line=re.sub('[\[\],\'\']', ' ', line)
llist =line.split()
data.append(llist)
print data[0][0]
输出:
6/1/13
要获得整行,请将print语句更改为print data[0]
输出:
['6/1/13', '9852', '54946', '47498.85', '220999.39', '26752', '2165', '0', '0']
答案 1 :(得分:1)
如果您的数据可由csv模块解析,则以下代码将起作用:
with open(txtpath, mode='r', newline='') as f:
fReader = csv.reader(f, delimiter=' ')
for rows in fReader:
list0fRows.append(rows)
print rows
parts [0]是零件清单中的第一个条目 - 我想你想要第一行的数据[0]。此示例中的代码将按顺序打印每一行。