python - 使用 optparse 接受参数的大多数 pythonic 方式

标签 python arguments command-line-arguments argparse optparse

我目前有一个 python 文件,它利用 sys.argv[1] 在命令行接受一个字符串。然后它对该字符串执行操作,然后将修改后的字符串返回到命令行。

我想实现一个批处理模式选项,我可以在其中提供一个字符串文件(每行一个,fwiw)并让它返回到命令行,这样我就可以重定向输出,比如

$ python script.py -someflag file.txt > modified.txt 

同时仍保留当前功能。

我只运行 2.6,所以 argparse 不是一个选项。我看到的教程要么使用 argparse、getopt,要么深入研究过于复杂/不适用的示例。

检查输入并采取适当行动的最佳方法是什么?

最佳答案

argparse仍然是一个选项,它只是没有内置到 2.6 中。您仍然可以像安装任何第 3 方包一样安装它(例如,使用 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

关于python - 使用 optparse 接受参数的大多数 pythonic 方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12222355/

相关文章:

haskell - 为什么是 getArgs 和 getProgName IO 操作?

python - 如何在 pandas 的特定列添加列表值?

python - 将可变变量传递给第二个变量并不总是按预期工作。为什么?是否有解决方法来保留原始变量引用?

python - 如何计算 Python 3 中的移动平均线?

java - 在不传递参数的情况下从同一类中的其他方法访问 ArrayList 的方法?

python - 点击: Customize "Missing argument" error handling by overriding UsageError's show function

python - FastAPI 单参数主体导致 Pydantic 验证错误

javascript - Vim 中重命名参数的函数

python - 可调用前缀 : takes 0 positional arguments but 2 were given 中的 Discord.py 错误

Python argparse : default argument stored as string, 未列出