为什么我的Python脚本无法将内容打印到终端?

6
我想不通为什么使用以下代码无法将内容打印到终端。
#!/usr/bin/env python3
import sys
def main():
    sys.stdout.write("Hello")

我通过进入包含Python文件的目录,使文件可执行并运行,从终端运行程序。

./filename

终端不打印任何内容,只是换行。如果不使用sys.stdout.write("string"),我该如何在终端上打印输出?

1
我在Python方面做得不是很多,但是你不需要在定义之后调用main()吗?或者直接使用print("Hello"),而不限制于main()函数。 - Wildcard
如果不使用sys.stdout.write("string"),我该如何在终端上打印输出?你尝试使用过print函数吗? - Karl Knechtel
1个回答

19

默认情况下,Python 不会执行 main 函数(或任何其他函数)。
您可以选择只需执行以下内容:

#!/usr/bin/env python3
import sys
sys.stdout.write("Hello")

或者,如果您想保留该函数,但在脚本运行时调用它:

#!/usr/bin/env python3
import sys

def main():
    sys.stdout.write("Hello")

if __name__ == '__main__':
    main()

如果您要将脚本导入到其他文件中,请使用第二种方法,否则请使用第一种方法。

此外,您可以直接使用Python的print函数,默认情况下会写入stdout。

#!/usr/bin/env python3
print("Hello")

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接