我在 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
,没有list2.txt
写入,但在终端上我看到我在里面bash-4.4
而不是本机 macOS bash。
有什么想法可能导致这种情况吗?
我在上面发布的脚本是一个更大脚本的一部分,它首先读取一些文件并输出list.txt
。
编辑:这里有更多描述 在第一个 python 脚本中,我解析了一个文件(具体来说是 genbank 文件),将包含项目(位置、链、名称)的列表写入list.txt
. 这list.txt
必须转换为可以被第二个 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"),