1. 通过python的ftplib批量下载ensembl中指定类型的文件,并且同一个物种的文件保存在一个文件夹中
  2. 经常碰到没下载完就停止,遇到这种情况可再次执行脚本,之前下载的文件不会被覆盖。如再次执行,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数据库指定类型的文件相关推荐

  1. python怎么批量下载年报_使用Python批量下载Wind数据库中的PDF报告

    原标题:使用Python批量下载Wind数据库中的PDF报告 背景 最近小编出于工作需要,准备在Wind金融数据终端批量下载上市公司2019年第一季度业绩预告.通过相关的条件检索,发现其相关数据有近百 ...

  2. 使用python批量下载需要的分子的SDF文件

    使用python批量下载需要的分子的SDF文件 这里需要借助python的第三方库pubchempy (可以使用pip安装:pip install pubchempy) 首先定义文件的路径(这里的文件 ...

  3. 群里又会python的吗_自从会了Python在群里斗图就没输过,Python批量下载表情包!...

    原标题:自从会了Python在群里斗图就没输过,Python批量下载表情包! 导语 最近图慌,于是随便写了个表情包批量下载的脚本,没什么技术含量,纯娱乐性质. 让我们愉快地开始吧~ 开发工具 Pyth ...

  4. 教你怎么使用python批量下载图片

    教你怎么使用python批量下载图片 文章目录 教你怎么使用python批量下载图片 前言 一.运行环境 1. win10 2. python==3.7.2 二.需要用到的参数 1. download ...

  5. 使用Python批量下载哨兵一号(sentinel-1)的精密轨道数据(precise orbit data)

    使用Python批量下载哨兵一号(sentinel-1)的精密轨道数据 1. 安装Python及data_downloader包 2. 下载精密轨道数据与辅助数据 1. 安装Python及data_d ...

  6. 利用python 批量下载美拍视频

    前些日子写了一个利用Python批量下载微博配图的程序,因为是基于微博的移动端,即weibo.cn  ,难度要小很多.而当我面对美拍时却发现,好像有点困难啊. 美拍的页面有很多动态元素,当我们打开某一 ...

  7. 利用python批量下载美拍视频

    前些日子写了一个利用python批量下载微博配图的程序,因为是基于微博的移动端,即weibo.cn  ,难度要小很多.而当我面对美拍时却发现,好像有点困难啊. 美拍的页面有很多动态元素,当我们打开某一 ...

  8. python下载网页里面所有的图片-Python批量下载网页图片详细教程

    很多朋友在网上查找批量下载图片的方法~发觉挺凌乱的,无从下手.这里绿茶小编就来跟大家分享下使用Python批量下载图片方法. 目标:爬取某个网站上n多页的链接,每个链接有n多张图片,每一页对应一个文件 ...

  9. python批量下载b站_python 批量下载bilibili视频的gui程序

    运行效果: 完整代码: # !/usr/bin/python # -*- coding:utf-8 -*- # time: 2019/07/02--08:12 __author__ = 'Henry' ...

  10. Python 批量下载SIGMOD,VLDB的论文 Mac OS

    这里写自定义目录标题 Python 批量下载SIGMOD,VLDB的论文 Mac OS 实现 0.要爬取的网站 1.下载单篇论文 2.获得所有论文的链接 完整代码 Python 批量下载SIGMOD, ...

最新文章

  1. 全球智能驾驶产业全景图
  2. 10行 python 代码做出哪些酷炫的事情?
  3. Alluxio 助力 Kubernetes,加速云端深度学习
  4. QT绘制散点图(1)
  5. Android互联网访问,get方式,post方式等方式
  6. 怎样用c语言写超市管理程序,C语言超市收银管理系统实现程序.doc
  7. F#基础教程 列表
  8. css多行多列的新闻模式
  9. 如何调用华为云api_如何部署模型到ModelArts并远程调用 (五):如何调用在线API服务...
  10. sql server实例内存使用统计
  11. python中用于循环结构的关键字_详解Python的循环结构知识点
  12. php缩略图代码,php 缩略图实现函数代码_php
  13. node2vec的一些理解
  14. NC65 通过编码规则生成物料编码
  15. 【H.264/AVC 句法和语义详解】(十二):H264中的帧场编码模式详解
  16. 6.26 Python小记**args** kwargs
  17. VMware虚拟机 网桥模式详细配置(及计算机网络基本知识 IP/子网掩码/网关/DNS)
  18. 小人物吃金币_android小游戏(1)
  19. Android系统开发篇(二) —— 建立Android系统开发环境之Ubuntu 20.04.4 LTS
  20. 最简单的视频网站(JavaEE+FFmpeg)

热门文章

  1. Windows进程详解(完整版)
  2. python 3.7.0 小甲鱼 有道词典翻译 (error:50)问题解决
  3. RST 和 Markdown
  4. 蓝牙扫描startLeScan测试
  5. Linux时间同步(Fri Nov 16 12:12:13 Local time zone must be set--see zic manual page 2018)解决办法
  6. 园区人工智能开启双创模式,“1+N”创新型组织发展成效初显
  7. 机器阅读理解任务综述
  8. 移动数据Moving Data
  9. USB转串口芯片CH340G的使用,3.3V或5V供电电路
  10. python 闲鱼_python之tk学习,闲鱼搜索-小记