我正在尝试获取列表中文件的内容。供参考:这些是文件的内容:
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"]
我如何才能做到这一点?谢谢!
答案 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)