我正在尝试编写此代码,该代码只测试文件是否存在然后读取并打印。 我已将此代码编写为名为readFile.py的文件,并尝试使用execfile命令通过shell运行它。我已经放了许多打印位置来检查控制器的位置。结果显示我只有前两个打印stmts并且控件没有进入def readFile()..我无法找到原因并需要帮助。谢谢!!
print 'i am doing fine'
filename = "train-win.dat"
print 'i am doing fine1'
def readFile():
print 'i am doing fine2'
import os
print 'i am doing fine3'
if os.path.exists(filename):
print 'i am doing fine4'
f = open(filename,"r")
print 'i am doing fine5'
a = f.readlines()
print 'i am doing fine6'
print a
print 'i am doing fine7'
f.close()p
答案 0 :(得分:7)
您定义了函数readFile
,但您没有调用它,因此它永远不会执行。在文件末尾添加它(不缩进):
readFile()
此外,您在函数的最后一行有语法错误:
f.close()p
那个p不应该存在。
完成这两项更改后,您的程序似乎有效。
答案 1 :(得分:5)
虽然您的代码可以使用另一个答案中显示的微小修改,但编写Python的常用方法是以稍微不同的顺序呈现代码。如果没有额外的print
语句,我可能会写:
import os
def readFile():
if os.path.exists(filename):
f = open(filename, "r")
a = f.readlines()
print a
f.close()
filename = "train-win.dat"
readFile()
首先是import
模块。通常这是在文件的顶部完成的。
下一部分定义了一个名为readFile
的函数。 def
语句在执行时实际上并没有执行任何事情,但Python会记住块中的语句,以便稍后执行。
最后,readFile()
实际上调用了readFile
函数。
另请注意,我在f.close()
语句中移动了if
。如果从未打开f
,你就不想试图关闭它。