在 python 命令行中多次使用同一选项

发布于 2024-12-23 00:35:38 字数 702 浏览 0 评论 0原文

我如何才能多次使用该选项?

例如命令 cpdoc

cpdoc -d text -s x -s y -s z

我想将 x,y,z 放在一个数组/数据结构中

import optparse
import os
import shutil


def main():
    p = optparse.OptionParser()
    folder = []
    p.add_option('--source', '-s',help="source folder")
    p.add_option('--destination', '-d')
    options, arguments = p.parse_args()

    if options.source and options.destination:
        if not os.path.exists(options.destination):
            os.makedirs(options.destination)
        for source in options.source:
            #do some stuff in each source

    else:
        p.print_help()


if __name__ == '__main__':
    main()

How can I use the option more than one time?

for example the command cpdoc:

cpdoc -d text -s x -s y -s z

I would like to have x,y,z in one array/data structure

import optparse
import os
import shutil


def main():
    p = optparse.OptionParser()
    folder = []
    p.add_option('--source', '-s',help="source folder")
    p.add_option('--destination', '-d')
    options, arguments = p.parse_args()

    if options.source and options.destination:
        if not os.path.exists(options.destination):
            os.makedirs(options.destination)
        for source in options.source:
            #do some stuff in each source

    else:
        p.print_help()


if __name__ == '__main__':
    main()

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

究竟谁懂我的在乎 2024-12-30 00:35:38

使用 argparse 模块而不是

docs 中偷来的:

parser.add_option("-t", "--tracks", action="append", type="int")

如果在在命令行中, optparse 的作用相当于:

options.tracks = []
options.tracks.append(int("3"))

如果稍后看到 --tracks=4 ,它会执行以下操作:

options.tracks.append(int("4"))

use the argparse module instead

Stolen without shame from the docs:

parser.add_option("-t", "--tracks", action="append", type="int")

If -t3 is seen on the command-line, optparse does the equivalent of:

options.tracks = []
options.tracks.append(int("3"))

If, a little later on, --tracks=4 is seen, it does:

options.tracks.append(int("4"))
穿透光 2024-12-30 00:35:38

您可以使用 append 操作:

p.add_option('--source', '-s', action='append', help='source_folder')

但是,是的,正如 vfxectropy 所说,从 Python 2.7 开始,optparse 模块已被弃用,取而代之的是 argparse 模块。

You can use the append action:

p.add_option('--source', '-s', action='append', help='source_folder')

But, yes, as vfxectropy says, as of Python 2.7, the optparse module is deprecated in favour of the argparse module.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文