在 python 命令行中多次使用同一选项
我如何才能多次使用该选项?
例如命令 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
使用 argparse 模块而不是
从 docs 中偷来的:
如果在在命令行中, optparse 的作用相当于:
如果稍后看到 --tracks=4 ,它会执行以下操作:
use the argparse module instead
Stolen without shame from the docs:
If -t3 is seen on the command-line, optparse does the equivalent of:
If, a little later on, --tracks=4 is seen, it does:
您可以使用
append
操作:但是,是的,正如 vfxectropy 所说,从 Python 2.7 开始,optparse 模块已被弃用,取而代之的是 argparse 模块。
You can use the
append
action:But, yes, as vfxectropy says, as of Python 2.7, the optparse module is deprecated in favour of the argparse module.