save = "/root/foo/"
PERF_PATH="/root/foobar/"
所以,起初我有可变save
和perf_path
在cmd
。但现在,我想用它代替增强的可读性。类型错误:不能连接“海峡”和“NoneType”对象
我想创建一个文件夹,变量app[a]
最终将存储到其中。
direc = os.mkdir(save + i + "-"+ j +"-" + k + "-" +l)
创建一个目录似乎没有问题。 但将非字符串值变量加入字符串似乎是一个问题。
cmd = "taskset -c %s" + PERF_PATH + "perf2 stat -t %s e r4008387e1 -f -o" +save + direc + "%s.csv &" % (cpus_list[a],fpid[a],apps[a])
pro= subprocess.Popen(cmd,shell=True, stdout=subprocess.PIPE, preexec_fn=os.setsid)
TypeError: cannot concatenate 'str' and 'NoneType' objects
cmd = "taskset -c %s" + str(PERF_PATH) + "perf2 stat -t %s e r4008387e1 -f -o" +str(save) + str(direc) + "%s.csv &" % (cpus_list[a],fpid[a],apps[a])
那是没有多大帮助的。
任何想法如何解决这个问题?
该错误消息告诉你,其中一个变量你”重新尝试添加的是“无”。找出它是哪一个。 –
但是,一旦你通过这个错误,你会得到一个'TypeError:不是在字符串格式化过程中转换的所有参数。问题在于'%'比'+'具有更高的优先级,但是_real_问题是您想要同时将字符串连接和'%'格式混合在一起,这很难正确,甚至是即使你做得对,也很难阅读。只需执行一个或另一个 - 理想的'%'格式化,或者甚至更好的格式化。 – abarnert