我想使用.txt文件的字符串行作为其他.txt文件中的搜索查询。但在此之前,我需要切割原始文本数据行的那些字符串。有一种简单的方法可以做到这一点吗?
这是我原来的.txt数据:
CHEMBL2057820|MUBD_HDAC2_ligandset|mol2|42|dock12
CHEMBL1957458|MUBD_HDAC2_ligandset|mol2|58|dock10
CHEMBL251144|MUBD_HDAC2_ligandset|mol2|41|dock98
CHEMBL269935|MUBD_HDAC2_ligandset|mol2|30|dock58
... (over thousands)
我需要一个新文件,新的新行只包含部分字符串,例如:
CHEMBL2057820
CHEMBL1957458
CHEMBL251144
CHEMBL269935
答案 0 :(得分:0)
打开文件,读取行并在|
字符处拆分每行,然后索引第一个结果
with open("test.txt") as f:
parts = (line.lstrip().split('|', 1)[0] for line in f)
with open('dest.txt', 'w') as dest:
dest.write("\n".join(parts))
说明:
lstrip
- 删除行前部的空白
split("|")
为每行返回如下列表:['CHEMBL2057820', 'MUBD_HDAC2_ligandset', 'mol2', '42', 'dock12']
由于我们只对第一部分进行了说明,因此在|
字符上拆分行的其余内容是多余的,所以我们可以指定一个maxsplit参数,它将停止分割字符串经过多次改变之后就会受到影响
所以split("|", 1)
给出['CHEMBL2057820','MUBD_HDAC2_ligandset|mol2|42|dock12']
因为我们只对第一部分split("|", 1)[0]
返回感兴趣
"CHEMBL..."
部分