'cat new.txt | tr -d "s/,[]''*//g" >meantenbri.txt2'
あなたが思っていることをしていません。例えば:
>>> print 'cat new.txt | tr -d "s/,[]''*//g" >meantenbri.txt2'
cat new.txt | tr -d "s/,[]*//g" >meantenbri.txt2
真ん中の 2 つのシングル クォーテーションがなくなっていることに注意して'cat new.txt | tr -d "s/,[]'
ください
'*//g" >meantenbri.txt2'
。これらの一重引用符を実際に文字列に含めるには、いくつかのオプションがあります。
com = """cat new.txt | tr -d "s/,[]''*//g" >meantenbri.txt2"""
com = [...]
, s0 = ''
,全体com = ''.join(com)
は実際には不要であることに注意してくださいcom
。角かっこを削除して、最初から文字列として作成するだけです。
補足として、外部プログラムを実行する場合subprocess.Popen()
よりも優先されます。os.system()
この場合、次のようになると思います(テストされていません):
import subprocess
cmd = ['tr', '-d', "s/,[]''*//g"]
p = subprocess.Popen(cmd, stdin=open('new.txt'),
stdout=open('meantenbri.txt2', 'w'))
p.communicate()
res = p.returncode
コメントでSvenが述べたように、これはそもそも外部プログラムを使用する必要があるものではありません。