Python readline () не работает? - PullRequest
       8

Python readline () не работает?

2 голосов
/ 22 января 2012

Я делаю небольшую программу, чтобы помочь мне в изучении Python (к которому я очень новичок).Я использую Python 3.2.

В оболочке Python при вводе

f = open('filename.txt', 'r')
f.readlines()

он печатает все в filename.txt.Тем не менее, когда я набираю его в новом окне и сохраняю его с расширением .py, он не показывает никакого вывода при запуске.Это также не дает мне никаких ошибок.

Код выглядит примерно так:

f = open('filename.txt', 'r')
f.readlines()

while True:
    f = open('filename.txt', 'a')
    inp = input('Enter text: ')
    rest of code...

Как мне распечатать все в файле перед выполнением любого из операторов while?

Ответы [ 3 ]

5 голосов
/ 22 января 2012

однако, когда я набираю его в новом окне и сохраняю его с расширением .py

Добавить вызов print.Интерактивный верхний уровень печатает значение последнего введенного выражения для удобства, но в скрипте это скоро станет очень раздражающим.

2 голосов
/ 22 января 2012

Интерпретатор Python работает в двух разных режимах:

  1. Интерактивный режим, в котором отображается командная строка >>>, доступ к которому можно получить, просто набрав python или python.exe в командной строке. Этот режим имеет функцию эха, которая удобно отображает для вас значение возврата любой введенной вами функции или выражения.

  2. Режим сценария. При вводе в командной строке python <yourscript.py>. В этом режиме Python скрывает ваш скрипт, а также возвращаемые значения для введенных вами операторов.

Если вы хотите, чтобы скрипт Python отображал что-то в консоли, используйте функцию print().

print(f.readlines())

См. python.org для получения дополнительной информации о интерпретаторе Python.

2 голосов
/ 22 января 2012

Попробуйте это в своем коде:

print(f.readlines())

Оболочка оценивает и печатает результат каждого введенного вами выражения, но если вы намереваетесь запустить свою программу из файла, то вы должны явно printзначения, которые вы хотите видеть в консоли.

...