ver*_*sit 5 python arguments optparse command-line-arguments argparse
我目前有一个python文件,利用sys.argv [1]在命令行接受一个字符串.然后,它对该字符串执行操作,然后将修改后的字符串返回到命令行.
我想实现一个批处理模式选项,在其中我可以提供一个字符串文件(每行一个,fwiw)并让它返回到命令行,以便我可以重定向输出做类似的事情
$ python script.py -someflag file.txt > modified.txt
Run Code Online (Sandbox Code Playgroud)
同时仍然保留当前的能力.
我只运行2.6,所以argparse不是一个选项.我看到的教程要么使用argparse,要么使用getopt,要么深入研究过于复杂/不适用的示例.
检查输入并采取适当行动的最佳方法是什么?
argparse仍然是一个选项,它只是没有内置到2.6.您仍然可以像任何第三方软件包一样安装它(例如,使用easy_install argparse).
代码的一个例子是:
import sys
import argparse
p = argparse.ArgumentParser(description="script.py")
p.add_argument("-s", dest="string")
p.add_argument("-f", dest="infile")
args = p.parse_args()
if args.infile == None and args.string == None:
print "Must be given either a string or a file"
sys.exit(1)
if args.infile != None and args.string != None:
print "Must be given either a string or a file, not both"
sys.exit(1)
if args.infile:
# process the input file one string at a time
if args.string:
# process the single string
Run Code Online (Sandbox Code Playgroud)