gpt4 book ai didi

python - 如何在Python中从空格分隔的文件中提取特定列?

转载 作者:行者123 更新时间:2023-12-01 05:02:33 25 4
gpt4 key购买 nike

我正在尝试处理蛋白质数据库中的一个文件,该文件由空格(而不是\t)分隔。我有一个 .txt 文件,我想提取特定的行,并且从这些行中,我只想提取几列。

我需要用 Python 来完成它。我首先尝试使用命令行并使用 awk 命令没有问题,但我不知道如何在 Python 中执行相同的操作。

这是我的文件的摘录:

[...]SEQRES   6 B   80  ALA LEU SER ILE LYS LYS ALA GLN THR PRO GLN GLN TRP          SEQRES   7 B   80  LYS PRO                                                      HELIX    1   1 THR A   68  SER A   81  1                                  14    HELIX    2   2 CYS A   97  LEU A  110  1                                  14    HELIX    3   3 ASN A  122  SER A  133  1                                  12    [...]

For example, I'd like to take only the 'HELIX' rows and then the 4th, 6th, 7th and 9th columns. I started reading the file line by line with a for loop and then extracted those rows starting with 'HELIX'... and that's all.

EDIT: This is the code I have right now, but the print doesn't work properly, only prints the first line of each block (HELIX SHEET AND DBREF)

#!/usr/bin/python
import sys

for line in open(sys.argv[1]):
if 'HELIX' in line:
helix = line.split()
elif 'SHEET'in line:
sheet = line.split()
elif 'DBREF' in line:
dbref = line.split()

print (helix), (sheet), (dbref)

最佳答案

如果您已经提取了该行,则可以使用 line.split() 拆分它。这将为您提供一个列表,您可以在其中提取所需的所有元素:

>>> test='HELIX 2 2 CYS A 97'
>>> test.split()
['HELIX', '2', '2', 'CYS', 'A', '97']
>>> test.split()[3]
'CYS'

关于python - 如何在Python中从空格分隔的文件中提取特定列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25768230/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com