Skip to main content
 首页 » 编程设计

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

2025年05月04日11over140

我正在尝试检查此代码的用户是否仅使用一个命令行参数(文件名)从命令行运行此程序。当我像这样运行这段代码时(我在 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 习惯用法。这样,一个文件可以包含可以由另一个模块导入的类和函数定义,它还可以包含代码,例如测试,只有当文件作为脚本直接运行时才会执行。