我正在尝试处理蛋白质数据库中的一个文件,该文件由空格(而不是\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 [...]
例如,我只想取“HELIX”行,然后取第4、6、7和9列。我开始用for循环逐行读取文件,然后提取那些以“HELIX”开头的行。。。仅此而已。
编辑:这是我现在拥有的代码,但是打印不正常,只打印每个块的第一行(HELIX SHEET和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)
看看CSV库。 https://docs.python.org/2/library/csv.html 下面的代码应该可以做到这一点
如果已经提取行,可以使用
line.split()
将其拆分。这将为您提供一个列表,您可以从中提取所需的所有元素:有什么理由不能直接使用split吗?
相关问题 更多 >
编程相关推荐