使用python 自动下载http目录下的所有文件,并创建对应的目录结构

import httplib
import re
import os
conn = httplib.HTTPSConnection("af.hikvision.com.cn")

def downloadDstFile(dirName,fileName,fullUrl):
    print "start down load file ",fileName,fullUrl
    conn.request("GET", fullUrl)
    fileDataResponse = conn.getresponse()
    with open(os.path.join(dirName,fileName),"wb") as f:
        f.write(fileDataResponse.read())
        
def getFullDirToLocal(rootUrl,rootDir):
    conn.request("GET", rootUrl)
    response = conn.getresponse().read()
    subUrls = re.findall(r'<a.*?href="(.*?)">(.*?)</a>', response)
    for singleUrl in subUrls:
        if singleUrl[1] != "../":
            if singleUrl[1][-1] != "/":
                downloadDstFile(rootDir,singleUrl[1],rootUrl+singleUrl[1])
            else:
                if not os.path.exists(rootDir+singleUrl[1]):            
                    os.mkdir(rootDir+singleUrl[1])
                getFullDirToLocal(rootUrl+str(singleUrl[1]),rootDir+singleUrl[1])
            
getFullDirToLocal("/artifactory/list/sbmc-release/public-lib/","./")

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
下面是一个简单的Python代码,实现了目录管理功能,可以添加文件目录,并将文件上传到对应目录中。其中,目录结构使用字典表示,每个目录有一个固定的权限,不能被修改。 ```python import os # 定义目录结构和权限 root_dir = { 'public': { 'upload': {'permission': 'rw', 'content': []}, 'download': {'permission': 'r', 'content': []} }, 'private': { 'upload': {'permission': 'rw', 'content': []}, 'download': {'permission': 'r', 'content': []} } } # 添加目录 def add_dir(path): parts = path.split('/') current_dir = root_dir for part in parts: if part not in current_dir: current_dir[part] = {'permission': 'rw', 'content': {}} current_dir = current_dir[part]['content'] # 添加文件 def add_file(path, content): parts = path.split('/') filename = parts[-1] dir_path = '/'.join(parts[:-1]) current_dir = root_dir for part in parts[:-1]: if part not in current_dir: add_dir(dir_path) current_dir = current_dir[part]['content'] else: current_dir = current_dir[part]['content'] current_dir[filename] = content # 上传文件 def upload_file(path, file_path): parts = path.split('/') current_dir = root_dir for part in parts[:-1]: current_dir = current_dir[part]['content'] if 'files' not in current_dir: current_dir['files'] = [] current_dir['files'].append(file_path) # 测试代码 add_file('public/upload/test.txt', 'This is a test file') print(root_dir) upload_file('public/upload', 'test.txt') print(root_dir) ``` 使用时,可以通过`add_file`函数添加文件,通过`upload_file`函数上传文件对应目录中。如果目录不存在,会自动创建。 当然,这只是一个简单的实现,实际上还需要考虑一些其他的因素,例如目录文件的权限管理、文件的重命名等等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小竹浮生

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值