如何正确地将 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)
我有以下 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)