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

4 投票
4 回答
16552 浏览
提问于 2025-04-17 19:56

我知道这个问题可能很基础,不过我在StackOverflow上找了很久也没找到简单的答案。

我的问题是:我怎么能从命令行执行一个Python脚本,并且能看到里面的打印信息。

比如说,我有一个文件叫test.py:

def hello():
    print "hello"

如果我进入解释器,导入test.py,然后调用test.hello(),一切都运行得很好。但是,我想直接在命令行运行

python test.py

并且让它在终端上打印出“hello”。

我该怎么做呢?

谢谢!

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

def main():
    hello()

def hello():
    print "hello"

我还需要调用main()吗,还是它会自动执行?

4 个回答

2

你需要让你的脚本真正去调用你的方法。通常,你可以用一个 if __name__ == "__main__": 这样的代码块来实现。

另外,你也可以在命令行中使用 -c 参数来明确地导入并运行你的模块,但这样做需要你的脚本在 Python 的路径上,而且这样做风格不好,因为你会在 Python 模块外面执行 Python 代码。

3

你的print语句是在一个函数的定义里面。你需要调用这个函数,才能让它执行:

def hello():
    print "hello"

if __name__ == '__main__':
    hello()

基本上这句话的意思是“如果这个文件是主文件(是从命令行调用的),那么就运行这段代码。”

9

在文件的最后添加以下内容:

if __name__ == '__main__':
    hello()

撰写回答