需要一些帮助来编写python脚本吗

需要一些帮助来编写python脚本吗,python,Python,我需要帮助编写一个Python脚本来解析这个特定的GO注释文件,并且只输出描述生物过程的行(p)。示例输出将如图所示。 这就是我到目前为止所拥有的 导入系统 进口稀土 文件\对象=打开(sys.argv[[1]] 对于文件\u对象中的某些\u行: some_line=some_line.strip('\n') 列表=某行拆分(“\t”) 如果重新搜索(“>”,则某些行): sys.stdout.write(列表[1]+“\t”) 我想格式化此文件,以便只输出描述生物过程(p)的行。正则表达式只查

我需要帮助编写一个Python脚本来解析这个特定的GO注释文件,并且只输出描述生物过程的行(p)。示例输出将如图所示。 这就是我到目前为止所拥有的

导入系统 进口稀土 文件\对象=打开(sys.argv[[1]] 对于文件\u对象中的某些\u行: some_line=some_line.strip('\n') 列表=某行拆分(“\t”) 如果重新搜索(“>”,则某些行): sys.stdout.write(列表[1]+“\t”)


我想格式化此文件,以便只输出描述生物过程(p)的行。

正则表达式只查看第4个值(格式为值空间-值空间…),并检查它是否为“p”,后面是withespace。如果匹配,则打印该行

import sys
import re
regex = re.compile(r'(\S+\s+){2,3}P\s.*')
with open(sys.argv[1]) as file:
    for line in file:
        line = line.strip() #Consider striping the line if it's necessary
        if regex.search(line):
            print(line)

这与@MrE的答案相同,但不使用
re

该文件以制表符分隔,因此我们可以执行以下操作:

with open(sys.argv[1]) as inf:
    for line in inf:
        parts = line.split('\t', 4)
        if len(parts) >= 4 and parts[3] == 'P':
            print(line, end='')

“我需要帮助”示例输入和输出是否有帮助?我需要眼镜吗?@varesa除非他们能告诉我们他们在这段代码中遇到了什么具体问题,否则我们真的帮不上忙。到目前为止,这个问题听起来像是他在要求我们为他们完成脚本。多大的标题啊,当我尝试使用这个脚本时,请帮助meI得到这个错误:回溯(上次最新的调用):文件“parseG0”,第5行,以open(sys.argv[[1]])作为文件:TypeError:列表索引必须是整数,而不是列表对不起,在
以open(sys.argv)作为文件[1] )作为文件:
有双括号,我更正了它,现在应该可以使用注意:一些输入行(即示例的第23行和第26行)在第二列中没有值。您的正则表达式将把
\t\t
视为一次空格运行,并拒绝这些行(应该包括在内)。也许您应该使用
\s
而不是
\s+
with open(sys.argv[1]) as inf:
    for line in inf:
        parts = line.split('\t', 4)
        if len(parts) >= 4 and parts[3] == 'P':
            print(line, end='')