将参数解析为单行或在 Python 中使用指定的分隔符
Parsing arguments as single line or using a specified delimiter in Python
我想在尝试以下列方式调用程序时解析命令行参数:
python plot.py --w --Develop origin plot --+3.5
我一直在使用 sys.argv
通过 for
循环解析它们:
for arg in sys,argv:
print(arg)
输出:
plot.py
--w
--Developoriginplot
--+3.5
但我希望得到如下输出:
plot.py
w
Develop origin plot
+3.5
有没有办法通过指定分隔符来分割线 --
?
您需要使用 argparser
这里是一个使用示例代码:
import argparse
parser = argparse.ArgumentParser(description='Process some integers.')
parser.add_argument('integers', metavar='N', type=int, nargs='+',
help='an integer for the accumulator')
parser.add_argument('--sum', dest='accumulate', action='store_const',
const=sum, default=max,
help='sum the integers (default: find the max)')
args = parser.parse_args()
print(args.accumulate(args.integers))
您可以使用 split() 和 replace() 函数。 split() 将定界符作为参数,replace 接受两个参数——第一个是您要替换的字符(在您的例子中是白色 space),第二个是您想要替换的字符。
#Your string
s = "--w --Develop origin plot --+3.5"
d = s.replace(' ','').split('--')[1:]
print(d)
>>['w', 'Developoriginplot', '+3.5']
然后您可以通过此列表的索引来引用您的参数。
希望对您有所帮助。
" ".join()
首先是参数,然后按 --
拆分。
import sys
args = " ".join(sys.argv) # join by spaces
args = [a.strip() for a in args.split("--")] # split by --, remove any extra spaces
print(args)
print("\n".join(args))
输出:
$ python plot.py --w --Develop origin plot --+3.5
['plot.py', 'w', 'Develop origin plot', '+3.5']
plot.py
w
Develop origin plot
+3.5
我想在尝试以下列方式调用程序时解析命令行参数:
python plot.py --w --Develop origin plot --+3.5
我一直在使用 sys.argv
通过 for
循环解析它们:
for arg in sys,argv:
print(arg)
输出:
plot.py
--w
--Developoriginplot
--+3.5
但我希望得到如下输出:
plot.py
w
Develop origin plot
+3.5
有没有办法通过指定分隔符来分割线 --
?
您需要使用 argparser
这里是一个使用示例代码:
import argparse
parser = argparse.ArgumentParser(description='Process some integers.')
parser.add_argument('integers', metavar='N', type=int, nargs='+',
help='an integer for the accumulator')
parser.add_argument('--sum', dest='accumulate', action='store_const',
const=sum, default=max,
help='sum the integers (default: find the max)')
args = parser.parse_args()
print(args.accumulate(args.integers))
您可以使用 split() 和 replace() 函数。 split() 将定界符作为参数,replace 接受两个参数——第一个是您要替换的字符(在您的例子中是白色 space),第二个是您想要替换的字符。
#Your string
s = "--w --Develop origin plot --+3.5"
d = s.replace(' ','').split('--')[1:]
print(d)
>>['w', 'Developoriginplot', '+3.5']
然后您可以通过此列表的索引来引用您的参数。
希望对您有所帮助。
" ".join()
首先是参数,然后按 --
拆分。
import sys
args = " ".join(sys.argv) # join by spaces
args = [a.strip() for a in args.split("--")] # split by --, remove any extra spaces
print(args)
print("\n".join(args))
输出:
$ python plot.py --w --Develop origin plot --+3.5
['plot.py', 'w', 'Develop origin plot', '+3.5']
plot.py
w
Develop origin plot
+3.5