如何在python中将sys.argv转换为argparse

时间:2013-08-09 22:54:36

标签: python python-2.7 python-3.x

我有

file1 = sys.argv[1]
file2 = sys.argv[2] 
file2 = sys.argv[3]

我怎样才能把它放在argparse中?

2 个答案:

答案 0 :(得分:2)

预打开的文件对象:

import argparse, sys

parser = argparse.ArgumentParser(description='Process src to dst')
parser.add_argument('src', type=argparse.FileType('r'),
                    default=sys.stdin)
parser.add_argument('dst', type=argparse.FileType('w'),
                    default=sys.stdout)
options = parser.parse_args()

然后使用options.srcoptions.dst作为已打开的文件对象。

使用--help命令行开关时打印以下内容:

usage: somescript.py [-h] src dst

Process src to dst

positional arguments:
  src
  dst

optional arguments:
  -h, --help  show this help message and exit

答案 1 :(得分:0)

如果Martijn的回答中的FileType让您感到困惑,那么更基本的设置就是

import argparse
p=argparse.ArgumentParser()
p.add_argument('file1')
p.add_argument('file2')
p.add_argument('file3')

测试:

import sys
sys.argv.extend(['file1','file2','file3')
p.parse_args()
# Namespace(file1='file1', file2='file2', file3='file3')

在这里您自己打开文件,而使用FileType时,arpgparse会为您执行此操作,并在出现问题时处理错误消息。