gpt4 book ai didi

python - 程序调用 : at least one command line parameter

转载 作者:太空宇宙 更新时间:2023-11-04 07:04:32 25 4
gpt4 key购买 nike

我正在尝试检查此代码的用户是否仅使用一个命令行参数(文件名)从命令行运行此程序。当我像这样运行这段代码时(我在 Windows 上)

C:\>python program.py
Usage: program.py <file.txt>
C:\>

没错。但是当我使用我想要操作的文件运行这个程序时,我没有打印任何东西:

C:\>python program.py file.txt

C:\>

哪里出了问题,我的代码在这里

#!/Python26/
# -*- coding: utf-8 -*-

import sys

def main(argv):
if len(argv) < 2:
sys.stderr.write("Usage: %s <file.txt>" % (argv[0],))
return 1

if __name__ == "__main__":
sys.exit(main(sys.argv))

f = open(sys.argv[1])
lines = f.readlines()
f.close()

for line in lines:
line = line.strip()
etc...

最佳答案

您需要将 f = open... 及其他内容移至主函数中。就目前而言,它永远不会被执行,因为执行在 sys.exit 调用时结束。

[编辑] 顺便说一句,以这种方式构建模块是一种常见的 Python 习惯用法。这样,一个文件可以包含可以由另一个模块导入的类和函数定义,它还可以包含代码,例如测试,只有当文件作为脚本直接运行时才会执行。

关于python - 程序调用 : at least one command line parameter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1282347/

25 4 0