Python スクリプト内で bash スクリプトを実行する際に問題がありますscript.py
。
import os
bashCommand = """
sed "s/) \['/1, color=\"#ffcccc\", label=\"/g" list.txt | sed 's/\[/ GraphicFeature(start=/g' | sed 's/\:/, end=/g' | sed 's/>//g' | sed 's/\](/, strand=/g' | sed "s/'\]/\"),/g" >list2.txt"""
os.system("bash %s" % bashCommand)
これを として実行するpython script.py
と noと書かれていますが、ターミナルでは、ネイティブの macOS bash ではなくlist2.txt
内部にいることがわかります。bash-4.4
これを引き起こす可能性のあるアイデアはありますか?
上に投稿したスクリプトは、より大きなスクリプトの一部であり、最初にファイルを読み込んで出力しますlist.txt
。
編集: ここにいくつかの詳細な説明があります。最初の python スクリプトでは、ファイル (具体的には genbank ファイル) を解析して、項目 (場所、ストランド、名前) を含むリストを に書き出しましたlist.txt
。これlist.txt
は、2 番目の Python スクリプトで解析できるように変換する必要があるため、sed.
list.txt
[0:2463](+) ['bifunctional aspartokinase/homoserine dehydrogenase I']
[2464:3397](+) ['Homoserine kinase']
[3397:4684](+) ['Threonine synthase']
希望する出力のように見えるように:
、すべての角かっこを置き換える必要があります。'
list2.txt
GraphicFeature(start=0, end=2463, strand=+1, color="#ffcccc", label="bifunctional aspartokinase/homoserine dehydrogenase I"),
GraphicFeature(start=2464, end=3397, strand=+1, color="#ffcccc", label="Homoserine kinase"),
GraphicFeature(start=3397, end=4684, strand=+1, color="#ffcccc", label="Threonine synthase"),