2013-05-05 2 views
0

он работает, если я печатаю это на питон оболочкеЯ хочу создать программу, которая считывает текстовый файл

>>> f= open(os.path.join(os.getcwd(), 'test1.txt'), 'r') 
>>> f.read() 
'plpw eeeeplpw eeeeplpw eeee' 
>>> f.close() 

, но если я создаю программу питона, я не работает.

import os 
f= open(os.path.join(os.getcwd(), 'test1.txt'), 'r') 
f.read() 
f.close() 

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

ответ

5

В интерактивной подсказке автоматически распечатывается все, что возвращает вызов функции. Это означает, что возвращаемое значение f.read() печатается автоматически. Этого не произойдет, если вы поместите его в программу, так что вам нужно будет print, чтобы он появился.

import os 
f = open(os.path.join(os.getcwd(), 'test1.txt'), 'r') 
print f.read() # use print(f.read()) in Python 3 
f.close() 

Еще одно предложение, я бы должен был бы использовать with блок:

import os 
with open(os.path.join(os.getcwd(), 'test1.txt'), 'r') as f: 
    print f.read() 

Это означает, что вам не придется беспокоиться о вручную закрыть файл впоследствии.

+0

Это была отличная помощь для меня, спасибо! – user2351602

+0

@ пользователь2351602 без проблем. – Volatility

+0

FYI, вы можете использовать функцию, эквивалентную 'print' в Python 2.6+, добавив' из __future__ import print_function' на самом верху. –