无法让 sys.argv 在 cmd 中给出任何输出

Cannot get sys.argv to give any output in cmd

这可能看起来很基本,但出于某种原因,我无法让任何带有 sys.argv 的程序在命令行中打印。相反,一个新的 cmd window 很快打开,在其内部不显示任何文本,然后关闭。紧接着,cmd 跳过一行并打印 C:\Users\(my userid)>,等待新的输入。

我的代码如下:

我第一次尝试:

import sys

print(sys.argv)

和 运行 通过命令行输入:

C:\Users\(my userId)\Desktop\filename.py(文件位置)

没有输出,而是 cmd 执行了我在第一段中描述的操作。

接下来我尝试了:

import sys

def main():
    print(sys.argv)

if __name__ == '__main__':
    main()

和 运行 它通过命令行的方式完全相同。同样,我对第一段中描述的过程表示欢迎。

我已经检查过我安装 python 的方式是否正确,文件名是否正确,并且文件通常位于它们应该在的位置。我是运行python3.9.

只需输入文件名即可得到预期的 cmd 输出:

'filename.py' is not recognized as an internal or external command,
operable program or batch file.

感谢任何帮助。

编辑:将 python 文件直接移动到 C:\Users(我的用户 ID),然后在 cmd 中使用 filename.py 运行 它会导致与之前相同的问题,程序的两个版本。

您实际上必须 运行 Python 与 python filename.pypython3 filename.pypy filename.py。这将启动解释器并将文件名传递给它。然后解释器执行文件的内容。

C:\Users\TigerhawkT3>file.py
'file.py' is not recognized as an internal or external command,
operable program or batch file.

C:\Users\TigerhawkT3>py file.py
['file.py']

首先,sys.argvreturns一个列表。 list[0] 将是您的程序文件名,其余的(list1、list[2] 等)将是您从 cmd 行输入的参数。

import sys
import time
def main():
  print(sys.argv[1])   # this will print out the first argument you input.
  time.sleep(3)        # in this case, sleep() is used to visualize the result in cmd.3 seconds in my case

if __name__ == '__main__':
  main()

希望对您有所帮助! Further Resource