这个错误是什么意思?
TypeError:无法连接'str'和'list'对象
这是代码的一部分:
for j in ('90.','52.62263.','26.5651.','10.8123.'):
if j == '90.':
z = ('0.')
elif j == '52.62263.':
z = ('0.', '72.', '144.', '216.', '288.')
for k in z:
exepath = os.path.join(exe file location here)
exepath = '"' + os.path.normpath(exepath) + '"'
cmd = [exepath + '-j' + str(j) + '-n' + str(z)]
process=Popen('echo ' + cmd, shell=True, stderr=STDOUT )
print process
Run Code Online (Sandbox Code Playgroud)
Tri*_*ych 11
我不确定你是否知道这cmd
是一个单元素list
,而不是一个字符串.
将该行更改为下面将构造一个字符串,其余代码将起作用:
# Just removing the square brackets
cmd = exepath + '-j' + str(j) + '-n' + str(z)
Run Code Online (Sandbox Code Playgroud)
我假设你使用括号来分组操作.如果一切都在一条线上,那就没有必要了.如果你想将它分成两行,你应该使用括号,而不是括号:
# 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))
Run Code Online (Sandbox Code Playgroud)
python中方括号之间的任何内容总是一个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",)
Run Code Online (Sandbox Code Playgroud)