如何正确地将 python 命令行参数提取到字符串中

How to correctly extract python command line args into strings

我有以下 python 脚本,它希望将第一个参数作为字符串接收,反转它然后打印出来

import sys

input = sys.argv[1:]
input_reversed = input[::-1]
print("The input_reversed is: " + input_reversed)

运行 它通过 python test.py abcdef 这样的调用得到以下错误:

Traceback (most recent call last):
  File "test.py", line 5, in <module>
    print("The input_reversed is: " + input_reversed)
TypeError: cannot concatenate 'str' and 'list' objects

我哪里错了? sys.argv[1:] 不是 return 字符串吗?

我只想调用python test.py abcdef并得到输出fedcba,这是abcdef的反向。

不,它 returns 是一个列表。您可以使用 join() 加入列表。试试这个:

print("The input_reversed is: " + ', '.join(input_reversed))

如果你想反转每个参数的内容,除了反转参数本身的顺序之外,将所有参数连接成一个字符串,然后反转它字符串:

print("The reversed input is: " + ' '.join(sys.argv[1:])[::-1])

注意这里的操作顺序。它可以用更多的中间步骤写成:

args_list = sys.argv[1:]
args_string = ' '.join(args_list)
reversed_args_string = args_string[::-1]
print("The reversed input is: " + reversed_args_string)