程序保持返回无,即使我没有定义

时间:2013-06-08 01:38:39

标签: python attributes mode

我正在研究http://learnpythonthehardway.com的额外问题。编写打开并读取文件的程序后,我尝试更改它以向open命令添加模式。但每当我这样做时,它会返回None以及文件内容。

以下是代码:

from sys import argv

script, filename = argv

txt = open(filename, "r")

print "Here's your file %r:" % filename
print txt.read()
print txt.close()

print "Type the filename again:"
file_again = raw_input("> ")

txt_again = open(file_again, "r")

print txt_again.read() 
print txt_again.close()

以下是打印出来的内容:

$ python ex15.py filey.txt
Here's your file 'filey.txt':
whatever
None
Type the filename again:
> filey.txt
whatever
None

在线之间斜线。

我找到了一个问题,解释说当你没有指定时,python会自动返回None。但是,当我尝试使用return命令时,或者除了print之外,它还需要一个定义。当我添加一个定义时,我无法使其余的代码工作。我怎样才能摆脱这个None

如果有人可以解释为什么它出现在“r”模式下,我也很感激,但不是没有它。

1 个答案:

答案 0 :(得分:6)

每个函数都在Python中返回一个值。您打印出txt.close()的结果,恰好是None

print txt.close()

只需删除print语句就可以了:

txt.close()