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

The*_*oxx 2 python

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

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

以下是我正在使用的数据文件中的一行示例

cluster8032:  WoodR1|Wood_4286 Q8R1|EIK58010 F113|AEV64487.1 NFM421|PSEBR_a4327
Run Code Online (Sandbox Code Playgroud)

从这一行我想要在单独的行上输出

Wood_4286
EIK58010
AEV644870.1
PSEBR_a4327
Run Code Online (Sandbox Code Playgroud)

Lan*_*aru 5

使用正则表达式模块执行此类任务.以下代码显示了如何从字符串中提取ID(只要它们以相同的方式构造,就适用于任意数量的ID).

import re
s = """cluster8032:  WoodR1|Wood_4286 Q8R1|EIK58010 F113|AEV64487.1 NFM421|PSEBR_a4327"""
results = re.findall('\|([^ ]*)',s) #list of ids that have been extracted from string
print('\n'.join(results)) #pretty output
Run Code Online (Sandbox Code Playgroud)

输出:

Wood_4286
EIK58010
AEV64487.1
PSEBR_a4327
Run Code Online (Sandbox Code Playgroud)

要将输出写入文件:

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

有关更多信息,请参阅regex模块文档.