从命令行执行Python脚本时隐藏打印语句
我知道这个问题可能很基础,不过我在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()