如何使用python从文件中复制特定数据?

如何使用python从文件中复制特定数据?,python,Python,我有一些大的数据文件,我想在每一行复制一些数据,基本上是一个ID代码。ID代码的一侧有一个|,另一侧有一个空格。我想知道是否可能只提取ID。我还有两个数据文件,一个每行有4个ID代码,另一个每行有23个 目前,我正在考虑从数据文件中复制每一行,然后相互减去字符串以获得所需的ID代码,但肯定有更简单的方法!帮忙 下面是我正在处理的数据文件中的一行的示例 cluster8032: WoodR1|Wood_4286 Q8R1|EIK58010 F113|AEV64487.1 NFM421|PSEBR

我有一些大的数据文件,我想在每一行复制一些数据,基本上是一个ID代码。ID代码的一侧有一个
|
,另一侧有一个空格。我想知道是否可能只提取ID。我还有两个数据文件,一个每行有4个ID代码,另一个每行有23个

目前,我正在考虑从数据文件中复制每一行,然后相互减去字符串以获得所需的ID代码,但肯定有更简单的方法!帮忙

下面是我正在处理的数据文件中的一行的示例

cluster8032:  WoodR1|Wood_4286 Q8R1|EIK58010 F113|AEV64487.1 NFM421|PSEBR_a4327
从这一行开始,我想在不同的行上输出

Wood_4286
EIK58010
AEV644870.1
PSEBR_a4327

将regex模块用于此类任务。下面的代码向您展示了如何从字符串中提取ID(适用于任意数量的ID,只要它们的结构相同)

输出:

Wood_4286
EIK58010
AEV64487.1
PSEBR_a4327
要将输出写入文件,请执行以下操作:

with open('out.txt', mode = 'w') as filehandle:
    filehandle.write('\n'.join(results))

有关更多信息,请参阅。

如果所有行都具有给定格式,则简单拆分即可:

#split by '|' and the result by space
ids = [x.split()[0] for x in line.split("|")[1:]]

“类似于从数据文件中复制每一行,然后从每一行中减去字符串”-您能给我们看一下您的代码吗?您想搜索一个特定的
cluster8032
数字,还是希望每一行产生四(或二十三)行输出?您的输出与问题的输出不匹配。你需要使用一个贪婪的星,后面跟着一个空格:“\\\([^ 124]*?)”是的,我注意到(我误读了这个问题)。现在已经修好了,谢谢。上面的代码功能正确。是的,你就是这样做的。我已经把它附在我的答案后面了。
#split by '|' and the result by space
ids = [x.split()[0] for x in line.split("|")[1:]]