繁体   English   中英

请在以下python代码中让我知道问题

[英]Please let me know the problem in the following python code

我正在尝试编写此代码,该代码仅测试文件是否存在,然后读取并打印。 我已将此代码编写为一个名为readFile.py的文件,并尝试使用execfile命令通过外壳运行它。 我已经放了许多打印指令,以检查控件的运行方向。 结果仅显示前两个打印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

您定义了函数readFile但尚未调用它,因此它将永远不会执行。 在文件末尾添加此内容(不缩进):

readFile()

此外,在函数的最后一行上还会出现语法错误:

 f.close()p

p不应该在那里。

完成这两项更改后,您的程序似乎可以运行。

尽管您的代码可以使用另一个答案中显示的微小修改来工作,但是编写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从未打开过,则您不想尝试将其关闭。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM