使用python批量下载ensembl数据库指定类型的文件
- 通过python的ftplib批量下载ensembl中指定类型的文件,并且同一个物种的文件保存在一个文件夹中
- 经常碰到没下载完就停止,遇到这种情况可再次执行脚本,之前下载的文件不会被覆盖。如再次执行,log和summary文件会有点问题,不过不影响下载
--------------------------------------------------------------------------------------------
2021-03-25更新,增加下载gff3和gtf的功能
#!/usr/bin/python
import ftplib
import osHOST='ftp.ensemblgenomes.org'def mkdir(path):dir=os.path.exists(path)if not dir:os.makedirs(path)def get_cdna_cds_pep():feature_lst=['cdna','cds','pep']DIRN='/pub/release-50/plants/fasta'logFile=open('download.log','a')###链接主机,定义端口###try:ftp=ftplib.FTP(HOST) except ftplib.error_perm:logFile.write("Can not contect %s\n" %HOST)returnlogFile.write("Connect %s successfully\n"%HOST)###匿名登陆 f.login()###try:ftp.login() except ftplib.error_perm:logFile.write("Fail to login\n")ftp.quit()returnlogFile.write("Login successfully\n")###获取下载文件###species_lst=ftp.nlst(DIRN)for species in species_lst: #遍历每个物种的文件夹speciesName=species.split("/")[-1]mkdir(speciesName)for feature in feature_lst: #遍历每个物种文件夹中的pep, cdna, cds文件夹path=species+"/"+featurefor file in ftp.nlst(path):outFilename=file.split("/")[-1]if 'fa.gz' in file and os.path.exists(outFilename) is False:with open(speciesName+"/"+outFilename, 'wb') as outfile:ftp.retrbinary('RETR %s' % file, outfile.write)logFile.write("file %s is dowloaded successfully\n" %outFilename)logFile.close()def get_gff_gtf():feature_lst=['gff3','gtf']DIRN='/pub/release-50/plants/'logFile=open('download.log','a')###链接主机,定义端口###try:ftp=ftplib.FTP(HOST) except ftplib.error_perm:logFile.write("Can not contect %s\n" %HOST)returnlogFile.write("Connect %s successfully\n"%HOST)###匿名登陆 f.login()###try:ftp.login() except ftplib.error_perm:logFile.write("Fail to login\n")ftp.quit()returnlogFile.write("Login successfully\n")###获取下载文件###for feature in feature_lst:suffix="50."+feature+".gz" #下载文件后缀species_lst=ftp.nlst(DIRN+feature)for species in species_lst: #遍历每个物种的文件夹speciesName=species.split("/")[-1]mkdir(speciesName)for file in ftp.nlst(species):outFilename=file.split("/")[-1]if suffix in file and os.path.exists(outFilename) is False:with open(speciesName+"/"+outFilename, 'wb') as outfile:ftp.retrbinary('RETR %s' % file, outfile.write)logFile.write("file %s is dowloaded successfully\n" %outFilename)logFile.close()if __name__ == '__main__':#get_cdna_cds_pep()get_gff_gtf()
使用python批量下载ensembl数据库指定类型的文件相关推荐
- python怎么批量下载年报_使用Python批量下载Wind数据库中的PDF报告
原标题:使用Python批量下载Wind数据库中的PDF报告 背景 最近小编出于工作需要,准备在Wind金融数据终端批量下载上市公司2019年第一季度业绩预告.通过相关的条件检索,发现其相关数据有近百 ...
- 使用python批量下载需要的分子的SDF文件
使用python批量下载需要的分子的SDF文件 这里需要借助python的第三方库pubchempy (可以使用pip安装:pip install pubchempy) 首先定义文件的路径(这里的文件 ...
- 群里又会python的吗_自从会了Python在群里斗图就没输过,Python批量下载表情包!...
原标题:自从会了Python在群里斗图就没输过,Python批量下载表情包! 导语 最近图慌,于是随便写了个表情包批量下载的脚本,没什么技术含量,纯娱乐性质. 让我们愉快地开始吧~ 开发工具 Pyth ...
- 教你怎么使用python批量下载图片
教你怎么使用python批量下载图片 文章目录 教你怎么使用python批量下载图片 前言 一.运行环境 1. win10 2. python==3.7.2 二.需要用到的参数 1. download ...
- 使用Python批量下载哨兵一号(sentinel-1)的精密轨道数据(precise orbit data)
使用Python批量下载哨兵一号(sentinel-1)的精密轨道数据 1. 安装Python及data_downloader包 2. 下载精密轨道数据与辅助数据 1. 安装Python及data_d ...
- 利用python 批量下载美拍视频
前些日子写了一个利用Python批量下载微博配图的程序,因为是基于微博的移动端,即weibo.cn ,难度要小很多.而当我面对美拍时却发现,好像有点困难啊. 美拍的页面有很多动态元素,当我们打开某一 ...
- 利用python批量下载美拍视频
前些日子写了一个利用python批量下载微博配图的程序,因为是基于微博的移动端,即weibo.cn ,难度要小很多.而当我面对美拍时却发现,好像有点困难啊. 美拍的页面有很多动态元素,当我们打开某一 ...
- python下载网页里面所有的图片-Python批量下载网页图片详细教程
很多朋友在网上查找批量下载图片的方法~发觉挺凌乱的,无从下手.这里绿茶小编就来跟大家分享下使用Python批量下载图片方法. 目标:爬取某个网站上n多页的链接,每个链接有n多张图片,每一页对应一个文件 ...
- python批量下载b站_python 批量下载bilibili视频的gui程序
运行效果: 完整代码: # !/usr/bin/python # -*- coding:utf-8 -*- # time: 2019/07/02--08:12 __author__ = 'Henry' ...
- Python 批量下载SIGMOD,VLDB的论文 Mac OS
这里写自定义目录标题 Python 批量下载SIGMOD,VLDB的论文 Mac OS 实现 0.要爬取的网站 1.下载单篇论文 2.获得所有论文的链接 完整代码 Python 批量下载SIGMOD, ...
最新文章
- 全球智能驾驶产业全景图
- 10行 python 代码做出哪些酷炫的事情?
- Alluxio 助力 Kubernetes,加速云端深度学习
- QT绘制散点图(1)
- Android互联网访问,get方式,post方式等方式
- 怎样用c语言写超市管理程序,C语言超市收银管理系统实现程序.doc
- F#基础教程 列表
- css多行多列的新闻模式
- 如何调用华为云api_如何部署模型到ModelArts并远程调用 (五):如何调用在线API服务...
- sql server实例内存使用统计
- python中用于循环结构的关键字_详解Python的循环结构知识点
- php缩略图代码,php 缩略图实现函数代码_php
- node2vec的一些理解
- NC65 通过编码规则生成物料编码
- 【H.264/AVC 句法和语义详解】(十二):H264中的帧场编码模式详解
- 6.26 Python小记**args** kwargs
- VMware虚拟机 网桥模式详细配置(及计算机网络基本知识 IP/子网掩码/网关/DNS)
- 小人物吃金币_android小游戏(1)
- Android系统开发篇(二) —— 建立Android系统开发环境之Ubuntu 20.04.4 LTS
- 最简单的视频网站(JavaEE+FFmpeg)
热门文章
- Windows进程详解(完整版)
- python 3.7.0 小甲鱼 有道词典翻译 (error:50)问题解决
- RST 和 Markdown
- 蓝牙扫描startLeScan测试
- Linux时间同步(Fri Nov 16 12:12:13 Local time zone must be set--see zic manual page 2018)解决办法
- 园区人工智能开启双创模式,“1+N”创新型组织发展成效初显
- 机器阅读理解任务综述
- 移动数据Moving Data
- USB转串口芯片CH340G的使用,3.3V或5V供电电路
- python 闲鱼_python之tk学习,闲鱼搜索-小记