2017-08-05 60 views
-1

我只是做节目Python错误信息文件名没有定义?

j = input("choose a file to read") 
l = open(j,"r") 
e =l.read() 
print e 

执行,并在README.txt文件,这是位于同一文件夹中的程序一个真正的文本文件类型,但每次当我输入的README.txt,我得到一条错误消息说

error FileName: README not defined. 

我有python 3.6。有谁知道我做错了什么?

+0

你实际上并没有在Python 3.6下运行该代码。你得到的错误清楚地表明你的'输入'正在试图评估输入,确切地说,Python 2的输入是如何工作的。确保您实际上处于正确的Python环境中。 – idjaw

+0

你的语句'print e'没有括号,表明这不是Python 3.6的代码,它是Python 2.x,这就解释了你使用'input'函数的问题。将其更改为'raw_input()'并查看是否解决了您的问题。如果我在“print”行中添加括号,你的代码在我的Python 3.6.2中可以正常工作。 –

+0

但是这里真正的解决方案是,如果你打算使用Python 3.6,那么你需要首先确保你的代码实际上是Python 3兼容的,而你实际上为* python 3运行*而不是2。 – idjaw

回答

0

蟒蛇3.x中有一点与Python 2.x的

首先是不同的,你必须使用print (e)代替print e(如果你使用Python 3.x的),那么必须关闭文件(如果你不“T这个它不是引发错误,但它是非常重要的),所以你的代码必须是:

j=input("choose your file ") 


try: 
l=open(j,'r') 

e=l.read() 

print (e) 

l.close() 

except: 
print (" no such file ") 

你也可以使用函数来做到这一点更好:

def readme(j): 
l=open(j,'r') 

e=l.read() 

l.close() 

print (e) # in python 3.x use print() instead of print 

readme("README.txt")