带有OS.System的Python内部bash 4.4



我在python脚本script.py中运行bash脚本的问题:

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"),

在python中读取文件,用单个正则表达式分析每一行,然后输出从捕获的零件构造的适当线。

import re
import sys
#                         1     2                3
#                        ---   ---              --
regex = re.compile(r"^[(d+):(d+)](+) ['(.*)']$")
# 1 - start value
# 2 - end value
# 3 - text value
with open("list2.txt", "w") as out:
    for line in sys.stdin:
        line = line.strip()
        m = regex.match(line)
        if m is None:
            print(line, file=out)
        else:
            print('GraphicFeature(start={}, end={}, strand=+1, color="#ffcccc", label="{}"),'.format(*m.groups()), file=out)

i输出线与未修改的正则表达式不匹配;您可能需要完全忽略它们或报告错误。

相关内容

  • 没有找到相关文章

最新更新