如何从python文件中获取列表

时间:2018-10-03 03:06:40

标签: python python-3.x file

我正在尝试获取列表中文件的内容。供参考:这些是文件的内容:

1. item1
2. item2
3. item3

我能够打开文件,当我执行file.read()时,从解释器中得到的只是一个空字符串:

>>> file = open("C:\\Users\\vivrd\\Desktop\\testing.txt")
>>> file.read()
''

如果我执行file.readlines(),它会显示一个列表,但是即使python文档说file.readlines()返回一个列表,只要我尝试为其分配变量(访问列表),我得到的只是一个空列表:

>>> file.readlines() 
['1. item1\n', '2. item2\n', '3. item3'] #returns the list   
>>> item = file.readlines()
>>> item #but the list is empty!
[]

我也尝试遍历文件,但没有打印出任何内容:

>>> for line in file:
print(line)


>>> 

由于某种原因,file.readlines()仅工作一次。我第二次尝试了,翻译器甚至什么也没显示:

>>> file.readlines()
[]

我的目标是获得一个看起来像这样的列表:["1. item1", "2. item2", "3. item3"]甚至带有转义序列(尽管不推荐):["1. item1 \n", "2. item2 \n", "3. item3"]

我如何才能做到这一点?谢谢!

2 个答案:

答案 0 :(得分:3)

它只能工作一次,因为在那之后,python读取了文件(here's a question that discusses this in detail)。读取一次并将其存储在变量中:

>>> f = open("C:\\Users\\vivrd\\Desktop\\testing.txt")
>>> items = f.readlines() # items should now be a list of lines in the file
>>> f.close() # make sure to close the file

如果要重新读取,请使用seek将“光标”移回文件的开头(关闭之前):

>>> items = f.readlines()
>>> f.seek(0)
>>> more_items = f.readlines()
>>> f.close()

答案 1 :(得分:1)

尝试使用这些代码行。

with open(filename , "r") as file:
     content=file.readlines()
for lines in content:
    print(lines)