Skip to main content
 首页 » 编程设计

python之如果给出值,则忽略 optparse

2025年05月04日11jyk

我希望能够传递一个参数而不必为 optparse 指定一个选项。如果我确实传递了一个选项,它必须是一个已知选项,否则脚本将失败。

将以下文件同步到目标

myscript.py filename 

将以下文件夹同步到目标(所有这些都在我创建的函数中解决)。

myscript.py -f foldername 

原因是,我有一个与“文件夹名称”关联的数组(或字典)。如果未传递任何选项,则 CLI 中给出的参数是用户调用脚本的工作文件夹中的文件。传递-f意味着上传一个文件夹,其值存储在一个dict中(用户可以在任何目录,这个文件夹的路径是提前知道的)。

我是否最好为这两个选项都添加选项? -f 用于文件,-v 用于文件夹 aka 版本?

请您参考如下方法:

我一直很喜欢显式,但你可以短路 optparse。

# args[0] is always the executable's name 
if len(args) > 1: 
    parser.parse_args(args, options) 
else: 
    #open file