Я не уверен, что вы знаете, что cmd
- это один элемент list
, а не строка.
Если изменить эту строку на приведенную ниже, получится строка, и весь ваш код будет работать:
# Just removing the square brackets
cmd = exepath + '-j' + str(j) + '-n' + str(z)
Полагаю, вы использовали скобки только для группировки операций. Это не обязательно, если все в одной строке. Если вы хотите разбить его на две строки, используйте скобки, а не скобки:
# This returns a one-element list
cmd = [exepath + '-j' + str(j) +
'-n' + str(z)]
# This returns a string
cmd = (exepath + '-j' + str(j) +
'-n' + str(z))
Все, что заключено в квадратные скобки в питоне, это всегда a list
. Выражения между скобками оцениваются как обычно, если в выражении нет запятой, в этом случае скобки действуют как конструктор tuple
:
# This is a string
str = ("I'm a string")
# This is a tuple
tup = ("I'm a string","me too")
# This is also a (one-element) tuple
tup = ("I'm a string",)