我正在研究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”模式下,我也很感激,但不是没有它。
答案 0 :(得分:6)
每个函数都在Python中返回一个值。您打印出txt.close()
的结果,恰好是None
:
print txt.close()
只需删除print
语句就可以了:
txt.close()