Python 列表到字符串操作。在各自单独的行上打印每个命令行 argv“--option argument1 argument2”

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

我有一个有效的解决方案,但它太糟糕了。我经常写这样的东西,然后只是厌恶地看着它,但是这个东西就这样留下来太恶心了……尤其是因为它只是列表到字符串操作。我很尴尬。我对更简洁的解决方案感兴趣。有人有更简洁的方法将每个选项参数及其参数打印在单独的行上吗?

sys.argv[1:] = parameter_set
print("\nGenerating parameter set: ")
parameter_set_string = ""
first_iter = True
for each in parameter_set:
    if each[0] == "-" and first_iter == False:
        print(parameter_set_string)
        parameter_set_string = each
    else: 
        if first_iter:
            parameter_set_string += each
            first_iter = False
        else:
           parameter_set_string += ' "' + each + '" '
print(parameter_set_string)

输出:

Generating parameter set:
--dates "2024-04-30" "2024-04-29" "2024-04-28" "2024-04-27"
--names "johnson" "woody" "richard" "willy" 
-o "/home/stamos/pickle/pics/name_brainstorming"

Generating parameter set:
--dates "2024-04-26" "2024-04-25" "2024-04-24"
--names "anaconda" "black mamba" "python" 
-o "/home/stamos/pickle/pics/name_brainstorming"
python printing parameters argv
1个回答
0
投票

我根据你的输出制作了一个模型输入。我希望这是正确的。

parameter_set = [
    "--dates", "2024-04-30", "2024-04-29", "2024-04-28", "2024-04-27",
    "--names", "johnson", "woody", "richard", "willy",
    "-o", "/home/stamos/pickle/pics/name_brainstorming",
]

print("\nGenerating parameter set: ", end="")

for param in parameter_set:
    if param[0] == "-":
        print(f"\n{param}", end="")
    else:
        print(f" \"{param}\"", end="")
print()
© www.soinside.com 2019 - 2024. All rights reserved.