栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

记录一次用python筛选数据的过程

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

记录一次用python筛选数据的过程

训练蛋白质数据,处理对象中有很多未指明信息的蛋白质,需要对两个txt文件做筛选,第一个文件标注了蛋白质的信息,列与列之间用空格隔开,四列分别表示蛋白质的id、昵称、大小和附加信息

第二个txt文件的数据量远比第一个文件大,不能用记事本打开,用PyCharm打开如下:

列与列之间用空格隔开,三列分别表示蛋白质1的id、蛋白质2的id、蛋白质1和2关联评分

所要做的是把文件一所有包含“Uncharacterized protein”字符串的行删去,把文件二中所有包含文件一删去的蛋白质的行删去。

采用如下办法:
第一步:在第一个文件筛选出所有含有“Uncharacterized protein”字段的数据,代码如下:

import re

lineList = []
matchPattern = re.compile(r'Uncharacterized protein')
file = open('protein items.txt','r',encoding='UTF-8')
while 1:
    line = file.readline()
    if not line:
        print("Read file End or Error")
        break
    elif matchPattern.search(line):
        lineList.append(line)//实际操作过程中把下一个else中的pass和这一句替换了,以满足任务需求
    else:
        pass
file.close()
file = open(r'dest.txt', 'w',encoding='UTF-8')
for i in lineList:
    file.write(i)
file.close()

第二步:读取筛选结果,并提取出第一列到一个新的文件test.txt

line = f.readline()  # 以行的形式进行读取文件
list1 = []
while line:
    a = line.split()
    b = a[0:1]       # 这是选取需要读取的列
    list1.append(b)  # 将其添加在列表之中
    line = f.readline()
f.close()

path_out = 'test.txt'   # 新的txt文件
t = ''
with open(path_out, 'w+') as f_out:
    for i in list1:
        for j in range(len(list1[0])):
            t = t + str(i[j])
        f_out.write(t)
        f_out.write('n')
        t = ''

第三步:用Notepad++在文本每一行的行首和行尾都插入特定的相同字符,之后把内容复制下来,填入第四部的代码中
具体做法参考文章:https://blog.csdn.net/weixin_34191845/article/details/85905681

第四步:

#!/bin/env python
import shutil, sys, os
darray = [
  //第三步复制的内容放在这里
]
 
def isInArray (array, line):
  for item in array:
    if item in line:
      return True
  return False
 
fname   = r'C:UsersYOGADesktopdownload.json'
fresult = r'C:UsersYOGADesktopdownload2.json'
 
with open(fname, 'r', encoding='UTF-8') as f:
    with open(fresult, 'w', encoding='UTF-8') as g:
        for line in f.readlines():
            if not isInArray(darray, line):
                g.write(line)
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/768156.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号