当前位置: 首页 > news >正文

经常用到的函数

创建文件夹和删除文件夹的函数

def make_dirs(*dirs):for new_dir in dirs:if not os.path.exists(new_dir):try:os.makedirs(new_dir)except RuntimeError:return Falsereturn Truedef remove_files(file_path_list):""" 删除列表中指定路径文件Args:file_path_list: 待删除文件路径 list"""try:if not isinstance(file_path_list, list):file_path_list = [file_path_list]for file_path in file_path_list:if file_path and os.path.isfile(file_path):os.remove(file_path)except Exception as ex:return exdef remove_dirs(dir_list):""" 删除列表中指定路径文件Args:dir_list: 待删除文件目录 list"""try:if not isinstance(dir_list, list):dir_list = [dir_list]for file_dir in dir_list:if file_dir and os.path.exists(file_dir):shutil.rmtree(file_dir)except Exception as ex:return ex

下载的函数

图像下载

def load_image(image: Union[str, PIL.Image.Image]) -> PIL.Image.Image:"""Loads `image` to a PIL Image.Args:image (`str` or `PIL.Image.Image`):The image to convert to the PIL Image format.Returns:`PIL.Image.Image`:A PIL Image."""if isinstance(image, str):if image.startswith("http://") or image.startswith("https://"):image = PIL.Image.open(requests.get(image, stream=True).raw)elif os.path.isfile(image):image = PIL.Image.open(image)else:raise ValueError(f"Incorrect path or url, URLs must start with `http://` or `https://`, and {image} is not a valid path")elif isinstance(image, PIL.Image.Image):image = imageelse:raise ValueError("Incorrect format used for image. Should be an url linking to an image, a local path, or a PIL image.")image = PIL.ImageOps.exif_transpose(image)image = image.convert("RGB")return image

单个文件的下载

下面的两个函数都可以进行文件的下载

import urllib
from urllib import request, errordef download_file(url, save_path, retry=5):"""采用 urlretrieve 下载单个文件, 并根据保存目录及指定文件名, 保存下载文件Args:url: 待下载文件 urlsave_path: 下载文件保存路径retry: 最多重复下载次数Returns:exitstatus: 是否下载成功url: 待下载文件 url (若下载失败, 可查看相应的 url)"""headers = {  # 用户代理,伪装浏览器用户访问网址'User-Agent': 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3941.4 ''Safari/537.36'}count = 1while count <= retry:try:r = request.Request(url, headers=headers)r1 = request.urlopen(r, timeout=2)try:urllib.request.urlretrieve(url, save_path)return Trueexcept socket.timeout:count += 1except Exception as e:count += 1except error.HTTPError as e:count += 1except error.URLError as e:count += 1except Exception as e:count += 1if count > retry:return False

上下文处理器函数Profile

import contextlibclass Profile(contextlib.ContextDecorator):# Usage: @Profile() decorator or 'with Profile():' context managerdef __init__(self, t=0.0):self.t = tself.cuda = torch.cuda.is_available()def __enter__(self):self.start = self.time()return selfdef __exit__(self, type, value, traceback):self.dt = self.time() - self.start  # delta-timeself.t += self.dt  # accumulate dtdef time(self):if self.cuda:torch.cuda.synchronize()return time.time()# 用法入下:
upload_oss_elapsed = tools.Profile()
with upload_oss_elapsed:oss_dir = os.path.join(server_conf.path.oss_root_dir, day, key)stat_up = tools.upload_dir2oss(bucket, result_data_dir, oss_dir, upload=server_conf.oss.OSS_UPLOAD)if not stat_up:_info = "[{}] upload to oss failed!!".format(key)self.logger.error(_info)response_dict = make_response(message=_info, requestId=requestId, typeId=typeId,userId=userId, labLogId=labLogId,imgsourceUrl=ori_image_url, videosourceUrl=ori_video_url,logosourceUrl=ori_logo_url, service_status_code=406)tools.remove_dirs([ori_data_dir, result_data_dir])return self.post_process(response_dict), 406self.logger.info(f"[{key}] byte adx result upload, elapsed time: {process_video_elapsed.t}")

相关文章:

经常用到的函数

创建文件夹和删除文件夹的函数 def make_dirs(*dirs):for new_dir in dirs:if not os.path.exists(new_dir):try:os.makedirs(new_dir)except RuntimeError:return Falsereturn Truedef remove_files(file_path_list):""" 删除列表中指定路径文件Args:file_pat…...

vue3学习(六)

前言 接上一篇学习笔记&#xff0c;今天主要是抽空学习了vue的状态管理&#xff0c;这里学习的是vuex&#xff0c;版本4.1。学习还没有学习完&#xff0c;里面有大坑&#xff0c;难怪现在官网出的状态管理用Pinia。 一、vuex状态管理知识点 上面的方式没有写全&#xff0c;还有…...

[数据集][目标检测]猫狗检测数据集VOC+YOLO格式8291张2类别

数据集格式&#xff1a;Pascal VOC格式YOLO格式(不包含分割路径的txt文件&#xff0c;仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数)&#xff1a;8291 标注数量(xml文件个数)&#xff1a;8291 标注数量(txt文件个数)&#xff1a;8291 标注…...

简单模拟实现shell(Linux)

目录​​​​​​​ 前言 展示效果 实现代码 前言 该代码模拟了shell的实现&#xff0c;也就是解析类似于“ls -a -l"的命令&#xff0c;当我们启动我们自己写的shell的可执行程序时&#xff0c;我们输入"ls"的命令&#xff0c;也可以展示出在shell中输入&…...

SQL深度解析:从基础到高级应用

SQL&#xff08;Structured Query Language&#xff09;是用于管理关系型数据库的语言&#xff0c;广泛应用于数据管理、分析和查询。本文将详细介绍SQL的基础知识、高级特性以及一些常见的代码示例&#xff0c;帮助您全面掌握SQL的应用。 一、SQL基础语法 数据库操作 创建数据…...

乡村振兴与脱贫攻坚相结合:巩固拓展脱贫攻坚成果,推动乡村全面振兴,建设更加美好的乡村生活

目录 一、引言 二、巩固拓展脱贫攻坚成果 1、精准施策&#xff0c;确保稳定脱贫 2、强化政策支持&#xff0c;巩固脱贫成果 3、激发内生动力&#xff0c;促进持续发展 三、推动乡村全面振兴 1、加快产业发展&#xff0c;增强乡村经济实力 2、推进乡村治理体系和治理能力…...

[AI Google] Google I/O 2024: 为新一代设计的 I/O

编辑注&#xff1a;以下是 Sundar Pichai 在 I/O 2024 上讲话的编辑版&#xff0c;并包含了更多在舞台上宣布的内容。查看我们收藏中的所有公告。 Google 完全进入了我们的 Gemini 时代。 在开始之前&#xff0c;我想反思一下我们所处的这一刻。我们已经在 AI 上投资了十多年…...

CentOS配置DNS

1.打开/etc/resolv.conf文件 sudo vi /etc/resolv.conf2.添加配置 nameserver 114.114.114.1143.保存并关闭文件。 4.为了确保配置生效&#xff0c;重启网络服务或重启系统。例如&#xff1a; 重启网络&#xff1a; sudo systemctl restart network重启系统&#xff1a; …...

ArcGIS空间数据处理、空间分析与制图;PLUS模型和InVEST模型的原理,参量提取与模型运行及结果分析;土地利用时空变化以及对生态系统服务的影响分析

工业革命以来&#xff0c;社会生产力迅速提高&#xff0c;人类活动频繁&#xff0c;此外人口与日俱增对土地的需求与改造更加强烈&#xff0c;人-地关系日益紧张。此外&#xff0c;土地资源的不合理开发利用更是造成了水土流失、植被退化、水资源短缺、区域气候变化、生物多样性…...

Linux基于V4L2的视频捕捉

简介 linux环境使用V4l2实现摄像头捕捉&#xff0c;界面流畅播放并可以保存图片到本地。 代码 void VideoCapture::run() {qDebug() << "VideoCapture start";// 打开设备int fd open("/dev/video0", O_RDWR);if(fd < 0){qDebug("video设…...

ECS搭建2.8版本的redis

要在ECS&#xff08;Elastic Compute Service&#xff09;上手动搭建Redis 2.8版本&#xff0c;你可以按照以下步骤操作&#xff1a; 步骤1&#xff1a;更新系统和安装依赖 首先&#xff0c;登录到你的ECS实例&#xff0c;确保系统是最新的并安装必要的依赖包&#xff1a; s…...

[机器学习]GPT LoRA 大模型微调,生成猫耳娘

往期热门专栏回顾 专栏描述Java项目实战介绍Java组件安装、使用&#xff1b;手写框架等Aws服务器实战Aws Linux服务器上操作nginx、git、JDK、VueJava微服务实战Java 微服务实战&#xff0c;Spring Cloud Netflix套件、Spring Cloud Alibaba套件、Seata、gateway、shadingjdbc…...

代码随想录算法训练营Day24|216.组合总和III、17.电话号码的字母组合

组合总和III 216. 组合总和 III - 力扣&#xff08;LeetCode&#xff09; 思路和昨日的组合题类似&#xff0c;但注意对回溯算法中&#xff0c;收获时的条件需要写对&#xff0c;path的长度要为k的同时&#xff0c;path中元素总和要为n。 class Solution { public:vector<…...

【Python系列】Python 中方法定义与方法调用详解

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…...

Java 基础面试300题 (201-230)

Java 基础面试300题 &#xff08;201-230&#xff09; 201.下面代码片段的输出是什么&#xff1f; Predicate<Integer> numberChecker (num)–> num > 20; int input 10; System.out.println(input” greater than 20–”numberChecker.test(input)); //Line 1…...

Go-知识并发控制Context

Go-知识并发控制Context 1. 介绍2. 实现原理2.1 接口定义2.2 Deadline()2.3 Done()2.4 Err()2.5 Value() 3. 空 context4. cancelCtx4.1 Done()4.2 Err()4.3 cancel()4.4 WithCancel4.5 例子4.6 总结 5. timerCtx5.1 Deadline5.2 cancel5.3 WithDeadline5.4 WithTimeout5.5 例子…...

Vue + Nodejs + socket.io 实现聊天

Vue 代码 // 安装 socket.io-clientnpm i socket.io-clientimport io from socket.io-client;mounted () {// * location.origin 表示你的 socket 服务地址// * /XXXX/socket.io 表示 你的 socket 在服务器配置的 访问地址let socket io(location.origin, {path: "/XX…...

cocos creator 3.x实现手机虚拟操作杆

简介 在许多移动游戏中&#xff0c;虚拟操纵杆是一个重要的用户界面元素&#xff0c;用于控制角色或物体的移动。本文将介绍如何在Unity中实现虚拟操纵杆&#xff0c;提供了一段用于移动控制的代码。我们将讨论不同类型的虚拟操纵杆&#xff0c;如固定和跟随&#xff0c;以及如…...

【数据分享】中国电力年鉴(2004-2022)

大家好&#xff01;今天我要向大家介绍一份重要的中国电力统计数据资源——《中国电力年鉴》。这份年鉴涵盖了从2004年到2022年中国电力统计全面数据&#xff0c;并提供限时免费下载。&#xff08;无需分享朋友圈即可获取&#xff09; 数据介绍 自1993年首次出版以来&#xf…...

两个数组的交集Ⅱ-力扣

想到的解法是使用两个map来进行记录&#xff0c;mp1用来统计num1中每个元素出现的次数。当nums2的元素能够在mp1中查找到时&#xff0c;将这个元素添加到mp2&#xff0c;按照这个规则统计得到nums2和nums1重复的元素&#xff0c;mp2中的value记录了nums2中这个元素出现的次数最…...

CDAN不只是论文里的公式:深入浅出图解‘条件对抗’如何让领域自适应更精准

CDAN不只是论文里的公式&#xff1a;深入浅出图解‘条件对抗’如何让领域自适应更精准 想象你是一位冰淇淋品鉴师&#xff0c;需要将一家老牌店铺&#xff08;源域&#xff09;的配方迁移到新店铺&#xff08;目标域&#xff09;。传统方法粗暴混合所有原料&#xff0c;导致巧…...

深入解析:set_clock_groups中-physically_exclusive与-asynchronous的约束协同与必要性

1. 从Spyglass报错看时钟约束的必要性 最近在跑Spyglass做SDC检查时&#xff0c;遇到了一个让我困惑的报错&#xff1a;"当两个时钟设置成物理互斥或逻辑互斥时&#xff0c;需要另外加上这两个时钟是异步设置的约束"。这让我很纳闷&#xff0c;明明已经设置了物理互…...

OpenSSL实战:手把手教你创建自签名根证书

1. 为什么需要自签名根证书&#xff1f; 想象一下你正在搭建一个内部测试环境&#xff0c;或者为公司的内部系统建立一套专属的安全通信机制。这时候你会发现&#xff0c;所有涉及HTTPS的环节都需要SSL/TLS证书。如果直接购买商业CA颁发的证书&#xff0c;不仅成本高&#xff…...

如何快速上手Notepad--:3步完成跨平台文本编辑器的配置与使用

如何快速上手Notepad--&#xff1a;3步完成跨平台文本编辑器的配置与使用 【免费下载链接】notepad-- 一个支持windows/linux/mac的文本编辑器&#xff0c;目标是做中国人自己的编辑器&#xff0c;来自中国。 项目地址: https://gitcode.com/GitHub_Trending/no/notepad-- …...

Electron-builder打包Windows应用,我踩过的三个坑(附详细解决方案)

Electron-builder打包Windows应用&#xff1a;三个典型问题的深度解析与实战解决方案 第一次使用electron-builder打包Windows应用时&#xff0c;那种期待与焦虑交织的感觉至今记忆犹新。作为一个从Web前端转向桌面应用开发的程序员&#xff0c;我本以为有了Electron这个跨平台…...

EcomGPT中英文7B模型部署案例:跨境电商运营者如何用一行bash启动AI助手

EcomGPT中英文7B模型部署案例&#xff1a;跨境电商运营者如何用一行bash启动AI助手 1. 项目概述 EcomGPT电商领域智能助手是基于阿里EcomGPT-7B-Multilingual多语言电商大模型开发的Web应用。这个工具专门为电商从业者设计&#xff0c;通过直观的网页界面提供商品分类、属性提…...

如何通过BaiduNetdiskPlugin实现下载性能提升:面向macOS用户的实用指南

如何通过BaiduNetdiskPlugin实现下载性能提升&#xff1a;面向macOS用户的实用指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 百度网盘作为常用的…...

AI头像生成器新手教程:5个常用风格关键词+3类背景模板Prompt速查表

AI头像生成器新手教程&#xff1a;5个常用风格关键词3类背景模板Prompt速查表 1. 快速了解AI头像生成器 AI头像生成器是一个帮你设计专属头像创意的智能工具。你只需要简单描述想要的头像风格&#xff0c;它就能生成详细的描述文案&#xff0c;这些文案可以直接用在Midjourne…...

Xinference-v1.17.1GPU算力优化:显存自动分片+KV Cache压缩,72B模型显存占用降40%

Xinference v1.17.1 GPU算力优化&#xff1a;显存自动分片KV Cache压缩&#xff0c;72B模型显存占用降40% 1. 引言&#xff1a;大模型部署的显存困境与曙光 如果你尝试过在单张消费级显卡上部署一个超过70B参数的大语言模型&#xff0c;大概率会看到一个熟悉的错误提示&#…...

ROS机器人开发实战:利用tf2库高效处理四元数、欧拉角与旋转矩阵的转换

1. 为什么机器人开发需要处理多种姿态表示 在机器人开发中&#xff0c;我们经常需要处理各种姿态数据。无论是移动机器人的定位信息、机械臂末端执行器的位姿&#xff0c;还是传感器数据的融合&#xff0c;都离不开对物体在三维空间中位置和朝向的描述。但有趣的是&#xff0c;…...