前提・実現したいこと
ターミナルで打ち込んでいたものをPythonで実行したい。
発生している問題・エラーメッセージ
cmdとtxtの中身は同じである(print( cmd == txt )の結果がTrue)であるが、
cmdで処理をしたとき以下の内容となりエラーとなってしまう。
しかし、txtで処理したときは意図通りの結果となる。
色々調べましたが、原因分からずお手上げ状態なのでどなたかご教授願います。
stdout_data: stderr_data:o: 1: o: r: not found
該当のソースコード
Python
1def rosbag_create(choices): 2 3 files = "/home/****/test.bag" 4 cmd="rosbag filter "+files+" "+files[:-4]+'_filtered.bag "' 5 for k in choices: 6 cmd+="topic=='" 7 cmd+=k 8 cmd+="' or " 9 cmd=cmd[:-3] 10 cmd+='"' 11 print("Converting....") 12 13 proc = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE) 14 stdout_data, stderr_data = proc.communicate() 15 print "stdout_data:"+stdout_data 16 print "stderr_data:"+stderr_data 17 18 txt="rosbag filter /home/****/test.bag /home/****/test_filtered.bag \"topic=='/aaa/bbb' \"" 19 proc = subprocess.Popen(txt, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE) 20 stdout_data, stderr_data = proc.communicate() 21 #print "stdout_data:"+stdout_data 22 #print "stderr_data:"+stderr_data 23 24 print( cmd == txt ) 25 26 QtGui.QMessageBox.information(QtGui.QWidget(), "Message", "Finish Convert!!")
あなたの回答
tips
プレビュー