python日志输出和命令行参数解析示例

代码包含日志终端输出、日志文件输出和命令行参数解析示例
主要功能,根据命令行参数复制对应比例的文件到指定的文件夹中,并输出相应日志

import os
import random
import shutil
import logging
import argparse
def copy_random_files(input_folder, output_folder, percentage=10):# 获取输入文件夹中的所有文件all_files = os.listdir(input_folder)# 计算需要复制的文件数量num_files_to_copy = int(len(all_files) * percentage / 100)# 随机选择要复制的文件files_to_copy = random.sample(all_files, num_files_to_copy)if os.path.isdir(output_folder):#删除输出文件夹内容shutil.rmtree(output_folder)# 确保输出文件夹存在,如果不存在则创建if not os.path.exists(output_folder):os.makedirs(output_folder)# 复制文件到输出文件夹for file_name in files_to_copy:input_path = os.path.join(input_folder, file_name)output_path = os.path.join(output_folder, file_name)shutil.copy(input_path, output_path)logging.info(f"Copying {input_path} to {output_path}")def setup_logging(log_file, log_level):logging.basicConfig(filename=log_file, level=log_level, format='%(asctime)s - %(levelname)s - %(message)s')console_handler = logging.StreamHandler()console_handler.setLevel(log_level)formatter = logging.Formatter('%(asctime)s - %(levelname)s - %(message)s')console_handler.setFormatter(formatter)logging.getLogger('').addHandler(console_handler)if __name__ == "__main__":parser = argparse.ArgumentParser(description='Copy a random percentage of files from one folder to another.')parser.add_argument('-i', '--input', default='img_npz_3008', help='Input folder path')parser.add_argument('-o', '--output', default='img_calibrate', help='Output folder path')parser.add_argument('-p', '--percentage', type=int, default=10, help='Percentage of files to copy (default: 10)')parser.add_argument('-lf', '--log-file', default='copy_random_files.log', help='Log file path (default: copy_random_files.log)')parser.add_argument('-ll','--log-level', choices=['DEBUG', 'INFO', 'WARNING', 'ERROR', 'CRITICAL'], default='INFO', help='Log level (default: INFO)')args = parser.parse_args()setup_logging(args.log_file, getattr(logging, args.log_level))logging.info(f"Copying {args.percentage}% of files from {args.input} to {args.output}")copy_random_files(args.input, args.output , args.percentage)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/155780.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

红队攻防之Goby反杀

若结局非我所愿,那就在尘埃落定前奋力一搏。 本文首发于先知社区,原创作者即是本人 一、弹xss 为了方便,本次直接使用 PhpStudy 进行建站,开启的web服务要为MySQLNginx,这里的 PhpStudy 地址为 http://x.x.x.x&…

线程池的异常处理机制

起因 一次开发过程中,送审之后向三方OA系统推送代办,其中由于优化的原因使用到线程池 ExecutorService todoMessageAsyncThread ThreadPoolManager.getThreadPool("todoMessageAsyncThreadPool");todoMessageAsyncThread.submit(() -> {…

【Leetcode Sheet】Weekly Practice 16

Leetcode Test 1334 阈值距离内邻居最少的城市(11.14) 有 n 个城市,按从 0 到 n-1 编号。给你一个边数组 edges,其中 edges[i] [fromi, toi, weighti] 代表 fromi 和 toi 两个城市之间的双向加权边,距离阈值是一个整数 distanceThreshold。…

Hibernate 一级缓存,二级缓存,查询缓存

概念: 1.什么是缓存呢? 缓存:是计算机领域的概念,它介于应用程序和永久性数据存储源之间。 缓存:一般人的理解是在内存中的一块空间,可以将二级缓存配置到硬盘。用白话来说,就是一个存储数据的…

Web前端—移动Web第三天(移动Web基础、rem、less、综合案例—极速问诊)

版本说明 当前版本号[20231120]。 版本修改说明20231120初版 目录 文章目录 版本说明目录移动 Web 第三天01-移动 Web 基础谷歌模拟器屏幕分辨率视口二倍图适配方案 02-rem简介媒体查询rem 布局flexible.jsrem 移动适配 03-less注释运算嵌套变量导入导出禁止导出 04-综合案例…

GNSS技术在灾害监测与应急响应中的关键作用

全球导航卫星系统(GNSS)技术在灾害监测与应急响应领域发挥着重要作用,为预防、监测和应对自然灾害提供了关键数据支持。本文将深入探讨GNSS技术在灾害监测与应急响应中的作用,并分析其对提高应对灾害能力的重要性。 一、GNSS在灾害…

android报错

(gradle版本:7.5-all.zip; gradle插件:7.4.2;java:11) 报错1: java.lang.IllegalArgumentException: Can only use lower 16 bits for requestCode 2023-11-20 19:39:39.207 22390-22390 AndroidRuntime com…

InnoDB 的一次更新事务是怎么实现的?

大体流程: 步骤: 1.加载数据到缓存中(Buffer Pool): 在进行数据更新时,InnoDB首先会在缓冲池(Buffer Pool)中查找该记录是否已经在内存中。如果记录不在内存中,会将需要更新的数据…

2021年03月 Scratch(二级)真题解析#中国电子学会#全国青少年软件编程等级考试

Scratch等级考试(1~4级)全部真题・点这里 一、单选题(共25题,每题2分,共50分) 第1题 小猫在沙漠中旅行好不容易找到了一杯水,初始位置如下图所示,下面哪个程序可以帮助它成功喝到水? A: B: C: D:

基于像素特征的kmeas聚类的图像分割方案

kmeans聚类代码 将像素进行聚类,得到每个像素的聚类标签,默认聚类簇数为3 def seg_kmeans(img,clusters3):img_flatimg.reshape((-1,3))# print(img_flat.shape)img_flatnp.float32(img_flat)criteria(cv.TERM_CRITERIA_MAX_ITERcv.TERM_CRITERIA_EPS,2…

stack和queue简单实现(容器适配器)

容器适配器 stack介绍stack模拟实现queue 介绍queue模拟实现deque stack介绍 stack模拟实现 以前我们实现stack,需要像list,vector一样手动创建成员函数,成员变量。但是stack作为容器适配器,我们有更简单的方法来实现它。 可以利用模板的强大…

练习六-使用Questasim来用verilog使用function函数

[TOC](使用Questasim来用verilog使用function函数 1,verilog中使用函数function2,RTL代码3,测试代码4,输出波形 1,verilog中使用函数function 目的: (1)了解函数的定义和在模块设计中…

【面试】测试/测开(未完成版)

1. 黑盒测试方法 黑盒测试:关注的是软件功能的实现,关注功能实现是否满足需求,测试对象是基于需求规格说明书。 1)等价类:有效等价类、无效等价类 2)边界值 3)因果图:不同的原因对应…

日常办公:批处理编写Word邮件合并获取图片全路径

大家在使用Word邮件合并这个功能,比如制作席卡、贺卡、准考证、员工档案、成绩单、邀请函、名片等等,那就需要对图片路径进行转换处理,此脚本就是直接将图片的路径提取出来,并把内容放到txt格式的文本文档里,打开Excel…

AcWing 4. 多重背包问题 I 学习笔记

有 N� 种物品和一个容量是 V� 的背包。 第 i� 种物品最多有 si�� 件,每件体积是 vi��,价值是 wi��。 求解将哪些物品装入背包,可使物…

JudgeOpen整理

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、pandas是什么?二、使用步骤 1.引入库2.读入数据总结 前言 提示:这里可以添加本文要记录的大概内容: 例如:…

九韵和声 饕餮盛宴丨音乐和声与校友情谊的完美交融

“九韻和聲”音樂會於11月19日晚上在深圳大劇院盛大舉行。來自各高校深圳校友會的逾千名同學們歡聚一堂,共同慶祝自己的合唱音樂會。 首次舉辦合唱音樂會 “九韵和声”音乐会由深圳市西安交通大学校友会牵头发起、主办,与深圳市清华大学校友会、深圳市浙…

基于非链式(数组)结点结构的二叉树的前(先)序输入创建以及遍历

点击链接返回标题->基于非链式(数组)结点结构的二叉树的层序、先序、中序、后序输入创建以及层序、先序、中序、后序输出-CSDN博客 我们采用递归的思想,不断去找空结点(值为-1的结点),在找空结点这个过程中,将输入的…

微信小程序知识付费平台,公众号App+SAAS+讲师端,多端部署

三勾知识付费系统基于thinkphp8element-plusuniapp打造的面向开发的知识付费系统,方便二次开发或直接使用,可发布到多端,包括微信小程序、微信公众号、QQ小程序、支付宝小程序、字节跳动小程序、百度小程序、android端、ios端。 功能包含直播…

欧拉操作系统下离线安装字体的操作步骤

背景 某 Web 应用部署到欧拉操作系统后,应用中导出的 PDF 文件中文全部显示乱码,原因是字体缺失,但是目标系统上并没有联网,必须找到字体的离线安装包。 CSDN 上还有40个积分,下载了两个相关的资源后,目标…