PC端数据下载软件开发(Python)

存储工具:阿里云->对象存储

需要将数据从云端下载到本地后再进行后续分析处理。


手动下载



需要下载的文件不多时,可以用这个方式。

依次点击:阿里云->控制台->对象存储->Bucket列表->XX Bucket->文件管理

该界面下,选中数据文件后,点击 批量操作->下载

脚本下载(Python)



按照阿里云的SDK文档(有各种语言的版本,这里选的是Python),可以很快地编写下载脚本:

https://help.aliyun.com/document_detail/32027.html?spm=a2c4g.11186623.2.24.5c741c62a5XKqp#concept-32027-zh

用到下载文件、列举文件、删除文件这3个功能。

下载文件

以下代码用于将指定的OSS文件下载到本地文件:

# -*- coding: utf-8 -*-
import oss2

# 阿里云主账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM账号进行API访问或日常运维,请登录 https://ram.console.aliyun.com 创建RAM账号。
auth = oss2.Auth(‘<yourAccessKeyId>‘, ‘<yourAccessKeySecret>‘)
# Endpoint以杭州为例,其它Region请按实际情况填写。
bucket = oss2.Bucket(auth, ‘http://oss-cn-hangzhou.aliyuncs.com‘, ‘<yourBucketName>‘)
# <yourObjectName>从OSS下载文件时需要指定包含文件后缀在内的完整路径,例如abc/efg/123.jpg。
# <yourLocalFile>由本地文件路径加文件名包括后缀组成,例如/users/local/myfile.txt。
bucket.get_object_to_file(‘<yourObjectName>‘, ‘<yourLocalFile>‘)

列举文件

以下代码用于列举指定存储空间下的10个文件:

# -*- coding: utf-8 -*-
import oss2
from itertools import islice

# 阿里云主账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM账号进行API访问或日常运维,请登录 https://ram.console.aliyun.com 创建RAM账号。
auth = oss2.Auth(‘<yourAccessKeyId>‘, ‘<yourAccessKeySecret>‘)
# Endpoint以杭州为例,其它Region请按实际情况填写。
bucket = oss2.Bucket(auth, ‘http://oss-cn-hangzhou.aliyuncs.com‘, ‘<yourBucketName>‘)

# oss2.ObjectIteratorr用于遍历文件。
for b in islice(oss2.ObjectIterator(bucket), 10):
    print(b.key)

删除文件

以下代码用于删除指定文件:

# -*- coding: utf-8 -*-
import oss2

# 阿里云主账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM账号进行API访问或日常运维,请登录 https://ram.console.aliyun.com 创建RAM账号。
auth = oss2.Auth(‘<yourAccessKeyId>‘, ‘<yourAccessKeySecret>‘)
# Endpoint以杭州为例,其它Region请按实际情况填写。
bucket = oss2.Bucket(auth, ‘http://oss-cn-hangzhou.aliyuncs.com‘, ‘<yourBucketName>‘)

# <yourObjectName>表示删除OSS文件时需要指定包含文件后缀在内的完整路径,例如abc/efg/123.jpg。
bucket.delete_object(‘<yourObjectName>‘)

根据上述代码,编写的数据文件下载脚本如下:

  1 import oss2
  2 import os
  3 from itertools import islice
  4
  5 local_dir = ‘E://data//‘
  6 access_key = ‘<yourAccessKeyId>‘
  7 secret_key = ‘<yourAccessKeySecret>‘
  8
  9 try:
 10   # 阿里云主账号AccessKey拥有所有API的访问权限,风险很高。
 11   # 强烈建议您创建并使用RAM账号进行API访问或日常运维,
 12   # 请登录 https://ram.console.aliyun.com 创建RAM账号。
 13   auth = oss2.Auth(access_key, secret_key)
 14   # Endpoint以北京为例,其它Region请按实际情况填写。
 15   bucket = oss2.Bucket(auth, ‘oss-cn-beijing.aliyuncs.com‘, ‘<yourBucketName>‘)
 16
 17   for obj in oss2.ObjectIterator(bucket):
 18     print(obj.key)
 19     filepath = local_dir + obj.key
 20     if os.path.exists(filepath):
 21       print (‘已存在:‘ + filepath)
 22       # delete data
 23       print(‘删除云端数据:‘ + obj.key)
 24       bucket.delete_object(obj.key)
 25     else:
 26       filedir = os.path.dirname(filepath)
 27       if not os.path.exists(filedir):
 28         os.makedirs(filedir)
 29         print(‘目录创建成功:‘ + filedir)
 30       bucket.get_object_to_file(obj.key, filepath)
 31 except:
 32   print(‘wrong‘)

程序中指定了本地的存储目录为’E://data//’,使用’//’来表示目录不容易出错。

列举出指定Bucket中的各个文件名,如果该文件在Bucket的一个二级目录下,文件名中也会包含文件夹信息,用print(obj.key) 打印出来:

FT_M003/FT_M003_00002019_2020-04-02_070821.db3

根据obj.key得到存储到本地的文件名 filepath = local_dir + obj.key

如果本地存在这个文件,就把云端Bucket中文件给删掉,否则就下载到本地(如果本地不存在目录,就创建目录)。当然也可以选择不删或者下载完成后马上就删,这个随意。

下载云端文件到本地(本地文件名:filepath)

bucket.get_object_to_file(obj.key, filepath)

删除云端文件

bucket.delete_object(obj.key)

<yourAccessKeyId>,<yourAccessKeySecret>

可以在AccessKey管理中创建,创建完成后会生成AccessKey和AccessKeySecret,并保存在一个csv文件中,通过这个钥匙可以获得阿里云所有API的访问权限,一定要好好保管。

<yourBucketName> 是之前创建的Bucket名称。

数据管理软件



在上述脚本的基础上,可以做一个数据管理软件,加入UI界面,还有这些功能:

同步:读取云端的所有文件名,更新到本地;

下载:下载全部文件、部分文件;

删除:删除全部文件、部分文件

这个软件做起来很灵活,实现起来应该也不难,这里不展开说了。

原文地址:https://www.cnblogs.com/hotwater99/p/12698640.html

时间: 2024-10-12 06:07:09

PC端数据下载软件开发(Python)的相关文章

PC端 Spark 二次开发 自动接收好友请求并同意

本次Spark二次开发是为了客服模块的开发, 能让用户一旦点击该客服则直接自动添加好友,而客服放则需自动添加好友,不同弹出对话框进行同意,这方便的广大客服. 现在废话不多说,直接上代码. package org.jivesoftware.spark.ui; import java.util.ArrayList; import org.jivesoftware.spark.util.log.Log; import org.jivesoftware.spark.util.ModelUtil; imp

在前端眼中pc端和移动的开发区别

按照昨天所说,本包子今天将总结在前端开发中,pc端和移动端的区别,整理完这些区别,本包子将开始整理pc端的布局,会写实际的代码了,还是那句话,希望文章中有什么不足的地方,大家能多多指正,大家一起进步,成为一个优秀的前端 ~~~ > o < ~~~ PC端和移动端布局的区别 1.pc端没有触摸的各种事件,移动端有:移动端没有鼠标移入移出事件,但是pc端有 2.Pc端最常用的布局是固定宽度为980px(也有960px,1000px,1200px):而在移动端,因为有很多网页是可以横屏看也可以竖屏看

web移动端和PC端利用chrome同步开发调试

利用chrome可以同步移动端和PC端的web开发调试,前提是,Android系统版本必须4.0+,而且必须用chrome,或者Android 4.4系统版本以上的原生app里面的webview才可以. 由于Android 4.4的原生app webview 的调试暂时还比较少,所以,这里简单说一下chrome下的调试. 1.移动设备和PC设备必须安装了chrome 32以上的版本,移动设备必须为Android4.0+: 2.移动设备进入设置功能,设置为开发模式: 3.PC端chrome打开ch

NCBI sra数据下载软件安装

引用网址: http://trace.ncbi.nlm.nih.gov/Traces/sra/sra.cgi?view=toolkit_doc&f=prefetch http://blog.csdn.net/likelet/article/details/8226368 http://liuwei441005.blog.163.com/blog/static/13570581120144935013905 1.SRA Toolkit 的安装 cd /opt/ wget ftp-trace.ncb

pc蛋蛋北京28软件app开发定制

在这个新的互联网时代,很多人都想着如何把pc蛋蛋28软件开发和北京28软件app开发做的更好,但是很多事情,不是想你想的那样的,现在大部分的人和企业都对互联网有很多的信心,但是对一部分的企业来说是一场战争,一场没有硝烟的战争. 为什么那么多的人想做pc蛋蛋北京28软件开发? 对于现在的行业来说,只要连接了互联网才能在这个时代生存下来,我们看一下哪些还保留着以前的思维和想法的企业,早已经不在了,很多人可能以为这是传统企业和互联网企业的战争,其实不是,这是这个时代传统企业转型的最佳时候.不懂找老邓

1、移动端 2、后台 3、 移动端,Web 端 4、 PC端

移动端: 1.公众号:停开心 住总物业 2.app:  iso Android 停开心,住总停开心 后台:停开心智慧停车管理平台(所有的停车场) 移动端,Web端: 海投OA,公司OA PC端:收费软件

python的flex服务端数据接口开发

python的flex服务端数据接口开发 python 如果给flex提供服务端,需要提供一个网关和一个可供客户端(flex)调用的类.这方面我更加推荐用twisted来写这个网关,因为twisted有很好的异步机制. 下面的我写的一个简单的验证用户的python服务端: ______________________________DBServer.py # Copyright (c) 2009-2010 The Newjh Project."""@author: Roy@s

手把手教你用python打造网易公开课视频下载软件3-对抓取的数据进行处理

上篇讲到抓取的数据保存到rawhtml变量中,然后通过编码最终保存到html变量当中,那么html变量还会有什么问题吗?当然会有了,例如可能html变量中的保存的抓取的页面源代码可能有些标签没有关闭标签,例如<div>hello</,这样的错误,那么怎么处理呢?接着看下面的代码: soup=BeautifulSoup(html) 其中利用模块BeautifulSoap,可能很方便去整理html源文件内容,这里我写了个小例子,大家看一下,代码如下: html='<html>&l

Python 使用tkinter开发exe程序,开发酷我音乐免费下载软件

程序功能:开发使用selenium打开浏览器,播放酷我音乐,获取歌曲url,下载歌曲安装模块: pip install tkinter pip install seleniumpip install pyinstallerpip install pypiwin32源代码: from tkinter import * from selenium import webdriver import time,re,requests,os,zipfile LOG_LINE_NUM = 0 class MY