Как получить список из файла в Python - PullRequest
0 голосов
/ 03 октября 2018

Я пытаюсь получить содержимое файла в списке.Для справки: это содержимое файла:

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"] или даже с escape-последовательностями (хотя и непредпочтительно): ["1. item1 \n", "2. item2 \n", "3. item3"]

Как мне добраться до этого пункта?Спасибо!

Ответы [ 2 ]

0 голосов
/ 03 октября 2018

Попробуйте с этими строками кодов.

with open(filename , "r") as file:
     content=file.readlines()
for lines in content:
    print(lines)
0 голосов
/ 03 октября 2018

Это будет работать только один раз, потому что после этого python заканчивает чтение файла ( вот вопрос, который обсуждает это подробно ).Прочитайте его один раз и сохраните в переменной:

>>> 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()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...