将列发送到数组的文本

时间:2017-10-31 18:10:22

标签: python list file

我一直在练习用Python阅读文件,因为我是那个特定领域的新手。

我有一个文本文件,如:

Hello,my,name,is,Jack

我希望将其转移到这样的list

["Hello", "my", "name", "is", "Jack"]

我试过这样做:

array = []
file = open("Names.txt", "r")
for line in file:
    array.append(line.split(","))
print(array)

但我有一个非常奇怪的error

File "C:\Python27\lib\random.py", line 261, in choice
return seq[int(self.random() * len(seq))]  # raises IndexError if seq is
empty
IndexError: list index out of range
>>>

我该如何解决?

2 个答案:

答案 0 :(得分:0)

尝试以下方法:

with open('Names.txt', 'rb') as f:
     content = list()
     for line in f:
          content.append(line.replace('\n','').split(','))

如果您正在使用Windows操作系统,请使用' \ n \ r'而不是' \ n'在替换声明中

答案 1 :(得分:0)

您尚未发布完整代码(在此代码中,您尚未使用random module),但可以从error看到您正试图在空random.choice上进行list

您可以像这样重现error

>>> import random
>>> random.choice([])
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib/python2.7/random.py", line 275, in choice
    return seq[int(self.random() * len(seq))]  # raises IndexError if seq is empty
IndexError: list index out of range

因此,如果您发布整个代码,我们可以为您提供进一步的帮助,但是您需要找到您要调用的位置random.choice()并调试您调用的list on