【发布时间】:2016-07-23 03:45:49
【问题描述】:
我想要做的是让我的 python 代码读取一个带有“;”的 .txt 文件每行分隔值,然后将每行上的每个值分隔到一个列表中,最后将这些值附加到分配的列表中。
这是我尝试过的......
pullData= open("example.txt", "r", encoding='utf-8').read()
dataArray = pullData.split('\n')
array_one = []
array_two = []
for eachLine in dataArray:
lineArray = eachLine.split(';')
array_one.append(lineArray[0])
array_two.append(lineArray[1])
此示例导致错误:
Traceback (most recent call last):
File "MyPath.py", line 25, in <module>
array_two.append(lineArray[1])
IndexError: list index out of range
每行的拆分都可以正常工作,因为打印这些列表可以正常工作;即:
for eachLine in dataArray:
lineArray = eachLine.split(';')
print(lineArray[0])
print(lineArray[1])
...因为上面返回了它应该返回的内容。
>>>
RESTART: MyPath.py
Jeff
1009
Bill
771
关于这里可能出现什么问题的任何想法...?
附:数据(即“example.txt”)是这样的:
Jeff;1009;3486;24047
Bill;771;371;3867
Michael;931;2131;3331
Jess;3311;9761;3886
Cathy;571;1301;63668
【问题讨论】:
-
显然并非所有数据都足够长
-
抱歉,您在那里使用了其他文件,最后可能有一个额外的换行符。
-
您的意思是在行中缺少值还是 .txt 文件中的某些“行”没有包含足够的内容来分割?因为我仔细检查了文件的前 50 行,并对其进行了测试,但仍然失败...:/
-
是的,后一个代码的失败方式应该与前一个完全相同;即“每行的拆分工作正常,因为打印这些列表工作正常”不可能是真的。
-
天哪!!!我不敢相信我是多么愚蠢! :D 我用仔细检查过的 50 个样本进行了“测试”,但没有意识到我的编辑器在底部添加了额外的行,因为我只是将它粘贴到另一个编辑器窗口。所以你有了它,现在它正在工作......谢谢Antti Haapala! :)
标签: list append python-3.5