首页 > 解决方案 > 如何在python中解压缩'zg-files'输出文件

问题描述

我在 python 中有一个脚本,允许我下载用户输入名称“输入”的物种序列,然后他的序列直接放在一个使用物种名称的文件夹中。但采用压缩格式(_genomic.fna.gz 或 _protein.faa.gz)。我想添加一个允许直接压缩输出文件的功能(因为它是一个重要的数字,例如对于 klebsiella 几乎 14 000 个序列)。Si quelqu'un peut m'aider s'il vous plaît( en rajoutant 。这是我的代码:

import wget
import numpy as np 
import pandas as pd   
import urllib.parse
import posixpath 
import os
import gzip
import shutil

URL='https://ftp.ncbi.nlm.nih.gov/genomes/GENOME_REPORTS/prokaryotes.txt'

data = pd.read_csv(wget.download(URL) , sep = '\t', header = 0)

espece = input("bacterial species : ")
TypeSeq = input ("fna (nucleique) ? ou faa (proteique) ? : ")   

if data["#Organism/Name"].str.contains(espece, case = False).any():

    print(data.loc[data["#Organism/Name"].str.contains(espece, case = False)]['Status'].value_counts())  
    FTP_list = data.loc[data["#Organism/Name"].str.contains(espece, case = False)]["FTP Path"].values
if  TypeSeq == "faa" :
    
        if not os.path.exists(espece):
            os.makedirs(espece)
    
        for url in FTP_list:
            try : 
                parts = urllib.parse.urlparse(url)
                parts.path
                posixpath.basename(parts.path)
                suffix = "_protein.faa.gz"
                prefix = posixpath.basename(parts.path) 
                print(prefix+suffix)
                path = posixpath.join(parts.path, prefix+suffix)
                ret = parts._replace(path=path) 
                sequence = wget.download(urllib.parse.urlunparse(ret), out=espece)
                f = gzip.open(sequence, 'rb')
                    
            except :
                print ("")
        
else:    
    print("species not found ")

标签: pythonpandas

解决方案


推荐阅读