python编程案列教程,python编程简单案例

大家好,本文将围绕python编程案列教程展开说明,python编程简单案例是一个很多人都想弄明白的事情,想搞清楚python简单案例代码需要先了解以下几个事情。

需求说明

将服务器上的文件(动物图片)批量下载到本地,并保留服务器上的目录结构。

一个很好的下载方法是:将服务器上的文件压缩为一个压缩包,然后直接下载一个压缩包到本地即可。 该方案缺点:压缩后的压缩包过大,如果下载中断则需重头开始下载。

服务器上文件目录

在服务器的 /home/work 目录下有如下数据:

animals
  --train
      |--dog
      		|-- 
      		|-- 
      		|--......
      |--cat
      		|
      		|
	      	|--......
  --valid
      |--dog
      		|--......
      |--cat
      		|--......
  --test
      |--dog
      		|--......
      |--cat
      		|--......

解决方案

批量生成要下载图片的目录结构

在服务器端切换到 /home/work/animals 目录,执行 python -m http.server 8811

(base) work@instance-cli0crch:~$ cd /home/work/animals
(base) work@instance-cli0crch:~$ python -m http.server 8811

浏览器访问 http://server_ip:8811/ 即可看到如下目录结构:

如下即为要下载的文件:下载链接即为

遍历 animals 目录,批量生成要下载的文件目录结构:

import os
# 遍历文件夹   
def iter_files(rootDir):
    # 遍历根目录
    for root, dirs, files in (rootDir):
        for file in files:
            file_name = (root,file)
            file_name = file_name.replace('/home/work/animals/', '')
            print(file_name)
            # 将要下载的图片路径写入文件
            with open('', 'a') as f:
                f.write(file_name + '\n')
# 调用方法
iter_files('/home/work/animals/')

生成的 内容如下:



......


......
拼接 url,然后根据 url 列表批量下载文件到本地
import wget
import os
from urllib import error
from http import client

# 由于网络问题抛出异常,程序会停止。处理该情况,重新下载
def re_down(url, out_path):
    try:
        wget.download(url, out=out_path)
    except error.ContentTooShortError:
        print('Network conditions is not good. Reloading...')
        re_down(url, out_path)
    except client.RemoteDisconnected:
        print('client is not good. Reloading...')
        re_down(url, out_path)

# 服务器地址
baseurl = 'http://server_ip:8811'
# 本地保存路径
basepath = r'D:/datasets/animals'
with open('') as f:
	# 读取所有图片在服务器的存放路径
    arr = f.readlines()
    for name in arr:
        # 去除末尾的换行符
        name = name.strip()
        # 拼接。服务器上的 url。
        url = baseurl + '/' + name	# 拼接后示例:
        # 截取第一个 / 到后面的所有内容
        path = name[name.index('/'):]
        # 拼接。本地存放路径
        out_path = basepath + path	# 如 
        # 截取目录,创建父级目录
        file_path = out_path[:out_path.rindex('/')]
        # 如果目录不存在,则创建
        if not .exists(file_path):
            os.mkdir(file_path)
        # print('server url = ', url)
        print('out_path = ', out_path)
        # 下载文件到本地
        # 如果文件不存在,则下载
        if not .exists(out_path):
            re_down(url, out_path)


原文地址1:https://blog.csdn.net/weixin_46034990/article/details/125944650
参考资料:python中用turtle画一个圆形 https://blog.csdn.net/SXIAOYAN_/article/details/140061099

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值