dse*_*lgo 4 python command-line-interface command-line-arguments argparse
我正在开发一个 Python 脚本,它将利用 CLI 参数将 .xls/.xlsx 文件转换为 .csv。由于 .xsl/.xlsx 文件可以有多个工作表,因此每个工作表都需要单独转换为单独的 .csv 文件。我想要做的是使用 argparse 添加一个必需参数来指定要转换的工作表和一个可选参数来指定生成的 .csv 应命名的内容。这是我希望命令外观的示例:
python converter.py --sheets <sheet-name> [sheet-rename]
Run Code Online (Sandbox Code Playgroud)
所以我不确定如何使用 argparse 添加一个带有两个参数的参数。
此外,我想为这个论点添加更多功能。如果可能,我希望可以重复参数以允许转换更多工作表。我不确定命令语法的外观,但类似于:
python converter.py --sheets (<sheet-name> [sheet-rename])...
python converter.py --sheets sheet1 sheet1_rename sheet2 sheet2_rename
Run Code Online (Sandbox Code Playgroud)
这最终可能会太复杂,但任何输入都会很棒。
--sheet 可以定义为一个带有两个参数的选项,这两个参数都累积在一个列表中。
p.add_argument('--sheet', action='append', nargs=2)
Run Code Online (Sandbox Code Playgroud)
调用python converter.py --sheet old1 new1 --sheet old2 new2将产生一个列表列表:
>>> print p.parse_args("--sheet old1 new1 --sheet old2 new2".split())
Namespace(sheet=[['old1', 'new1'], ['old2', 'new2']])
Run Code Online (Sandbox Code Playgroud)