从命令行执行Python脚本是隐藏打印语句

时间:2013-03-21 20:03:54

标签: python printing terminal

我知道这一定是一个超级基本的问题,但是,我试图在整个过程中找到一个简单的答案而找不到答案。

所以我的问题是:如何从命令行执行python脚本,以便我可以看到打印语句。

例如,假设我有文件test.py:

def hello():
    print "hello"

如果我进入解释器,导入test.py,然后调用test.hello(),一切正常。但是,我希望能够运行

python test.py

从命令行打印并向终端打印“hello”。

我该怎么做?

谢谢!

更新: 是的,抱歉,我的脚本实际上更像是这样:

def main():
    hello()

def hello():
    print "hello"

我还需要调用main(),还是自动调用?

4 个答案:

答案 0 :(得分:7)

在文件末尾添加:

if __name__ == '__main__':
    hello()

答案 1 :(得分:3)

您的print语句包含在函数定义块中。您需要调用该函数才能执行:

def hello():
    print "hello"

if __name__ == '__main__':
    hello()

基本上这是说“如果这个文件是主文件(已从命令行调用),则运行此代码。”

答案 2 :(得分:2)

您必须让脚本实际调用您的方法。通常,您可以使用if __name__ == "__main__":块执行此操作。

或者,你可以使用解释器的-c参数从cli中显式地导入和运行你的模块,但这需要脚本在你的python路径上,并且你的样式也会很糟糕现在已经在Python模块之外执行了Python代码。

答案 3 :(得分:0)

据我了解,您的文件只有以下几行:

def hello():
    print "hello"

定义是正确的,但是什么时候“调用”函数?

您的文件应包含对hello()功能的调用:

def hello():
    print "hello"

hello()

这样,函数在单个文件中被定义为

这是一种非常“类似脚本”的方法......它可行,但必须有更好的方法来实现它