python读取用空格分隔的文字_如何从Python中的空格分隔文件中提取特定的列?

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

我需要在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表和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)

2014-09-10

Alia_MW

+0

你能后目前你有什么样的代码? –

2014-09-10 14:41:07

+0

请发布您的代码。你的问题具体是什么? –

2014-09-10 14:41:54

+0

我的代码中有一团糟,这就是为什么我没有发布它......我甚至不知道我现在在做什么。我的具体问题是我需要查找以'HELIX'开头的行,具体列。对于以'SHEET'开头的行,还有其他特定的列等等。所以,我在阅读了一些评论之后做了这些: for line in open(sys.argv [1]): \t如果'HELIX'符合: \t \t COLS = line.split() \t \t打印(COLS [0],COLS [3],COLS [5],COLS [6],COLS [8]) 事情是:我想不必对'SHEET'开始的那些行进行相同的操作(只更改我想要提取的列的位置)。 –

2014-09-10 15:10:54

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值