如何创建一个处理输入字符串或输入文件的python脚本?

问题描述 投票:0回答:1

我想制作一个python脚本,既可以处理输入到命令行的字符串,也可以处理输入文件。

python my_script.py "Hello World"

或文件中的一组字符串(如input_file.txt)

python my_script.py -i input_file.txt

有没有办法通过 argparse? 到目前为止,我可以处理输入文件,但我不知道如何添加直接处理命令行中输入的字符串的选项。

python argparse
1个回答
0
投票

make argparse 接受一个位置参数(文件名或字符串)和一个标志(-i)。如果存在标志,则将参数视为一个文件。请看一下 argparse教程 以获取更多信息。我已经修改了这个例子,以满足您的需求。

import argparse
parser = argparse.ArgumentParser()
parser.add_argument("inp", help="input string or input file")
parser.add_argument("-i", "--treat-as-file", action="store_true",
                    help="reads from file if specified")
args = parser.parse_args()

if args.treat_as_file:
    print("Treating {} as input file".format(args.inp))
else:
    print("Treating {} as the input".format(args.inp))

输出。

/tmp $ python test.py abcde
Treating abcde as the input
/tmp $ python test.py -i abcde
Treating abcde as input file

-1
投票

要处理一个命令行字符串,你可以使用 sys.argv,它是所有输入到命令行的参数的列表。

main.py。

import sys
print(sys.argv)

在CLI中运行以下一行

>> python main.py foo bar "hello world"

会输出。

['main.py', 'foo', 'bar', 'hello world']

© www.soinside.com 2019 - 2024. All rights reserved.