ChatGPT生成的一些有趣的文件管理用python小程序

1. 查找当前位置中的所有文件夹,并在每个文件夹中增加一个名为 abc 的新文件夹

import osdef create_abc_directories(root_dir='.'):# 获取当前目录下的所有目录subdirectories = [d for d in os.listdir(root_dir) if os.path.isdir(os.path.join(root_dir, d))]# 在每个目录中创建名为abc的子目录for directory in subdirectories:abc_dir = os.path.join(root_dir, directory, 'abc')os.makedirs(abc_dir, exist_ok=True)print(f"在 {directory} 目录中创建了 {abc_dir} 目录")if __name__ == "__main__":create_abc_directories()

用法:保存为 *.py文件,增加x权限,执行命令:  python *.py

2. 以文件 a.txt 内的名称,批量新建文件夹

import osdef create_folders_from_file(file_path='a.txt'):# 检查文件是否存在if not os.path.exists(file_path):print(f"错误: 文件 '{file_path}' 不存在。")return# 打开文件并逐行读取文件名with open(file_path, 'r') as file:folder_names = [line.strip() for line in file.readlines()]# 在当前位置创建文件夹,如果同名文件夹已存在则跳过for folder_name in folder_names:folder_path = os.path.join(os.getcwd(), folder_name)if os.path.exists(folder_path) and os.path.isdir(folder_path):print(f"文件夹 '{folder_name}' 已存在,跳过创建。")else:os.makedirs(folder_path, exist_ok=True)print(f"已创建文件夹: {folder_path}")if __name__ == "__main__":create_folders_from_file()

运行命令:  python *.py ./a.txt 

这个脚本首先检查文件a.txt是否存在,然后逐行读取该文件中的名称。对于每个名称,它构建文件夹路径并检查是否已经存在。如果存在,则输出提示信息并跳过创建;否则,它将创建新的文件夹。


 

3.检查当前位置中的所有空目录并将其删除,递归执行

import osdef remove_empty_directories(root_dir='.'):# 获取当前目录下的所有子目录和文件for root, dirs, files in os.walk(root_dir, topdown=False):for directory in dirs:folder_path = os.path.join(root, directory)# 检查目录是否为空if not os.listdir(folder_path):print(f"删除空目录: {folder_path}")os.rmdir(folder_path)if __name__ == "__main__":remove_empty_directories()

这个脚本使用os.walk函数遍历目录树,从底层向上遍历目录。对于每个目录,它检查是否为空,如果是,则删除该目录。

4.为当前位置下的子文件夹在/home/link/中的同名子文件夹内创建软连接,软连接的名称是abcd

import os# 获取当前目录
current_dir = os.getcwd()# 设置链接目录
link_dir = "/home/link"# 遍历当前目录中的子目录
for dir_name in os.listdir(current_dir):# 检查是否是目录if os.path.isdir(os.path.join(current_dir, dir_name)):# 构建软链接的目标路径link_target = os.path.join(link_dir, dir_name, "abcd")# 创建软链接os.symlink(os.path.join(current_dir, dir_name), link_target)print(f"Created symlink for {dir_name} in {link_target}")

5.为当前位置中所有文件夹内的同名子文件夹批量创建软连接,软连接名称以父文件夹来命名

编写一个python脚本,其功能是: 检查当前位置所有文件夹内是否有名称为abc的子文件夹,如果有,则在/home/link/中为子文件夹abc创建软链接,软链接的名称为其父文件夹的名称

import os# 获取当前目录
current_dir = os.getcwd()# 设置链接目录
link_dir = "/home/link"# 遍历当前目录中的子目录
for dir_name in os.listdir(current_dir):dir_path = os.path.join(current_dir, dir_name)abc_dir_path = os.path.join(dir_path, "abc")# 检查是否是目录且 abc 子目录存在if os.path.isdir(dir_path) and os.path.exists(abc_dir_path) and os.path.isdir(abc_dir_path):# 构建软链接的目标路径link_target = os.path.join(link_dir,  dir_name)# 创建软链接os.symlink(abc_dir_path, link_target)print(f"Created symlink for {abc_dir_path} in {link_target}")

 例如,/home/test/中有两个文件夹 公司A 公司B,他们都有同样的文件夹abc,则运行该脚本后,会/home/link/中生成 公司A 公司B 两个软链接文件,分别指向各自文件夹内的 abc

该用法适用的场景: 在Company文件夹中有100个以公司名称命名的文件夹,每个公司的文件夹中,是以各种业务名称命名的子文件夹;如果想对各个公司的同一个项目创建软连接到Projetc文件夹中,则采用该脚本;这样在 Projetc/项目X/ 文件家内,就会出现以各个公司名为文件夹的软连接。

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

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

相关文章

vue3实现元素拖拽移动功能

效果图 实现拖拽移动 首先我们给需要实现功能的元素加一个draggable"true"让元素能够被拖拽 先来认识两个搭配draggable属性一起使用的事件——ondragstart和ondragend,它们的定义分别为: ①. ondragstart 事件在用户开始拖动元素或选择的文…

Linux安装Java环境

处理安装环境 检查系统版本 [rootjeven ~]# cat /etc/centos-release CentOS Linux release 7.6.1810 (Core)检查系统内核版本 [rootjeven ~]# uname -r 6.1.8-1.el7.elrepo.x86_64清空卸载java环境(如果已经安装了) 查询java所在位置 [rootjeven …

12.5 @ 深圳丨都说出海去接泼天的富贵,你真的准备好了吗?

今年以来,围绕“出海”的话题炙手可热。从传统企业到互联网公司,从制造业到内容产业等等,都在探索走出去的可行性。 所以我们能够看到: 在美国,打开 TikTok 看上几集中国式竖屏短剧成为了新的流行,尽管是霸…

面试篇Flink

一:为什么学习flink? 相比较spark,flink对于实时这块,使用过流的方式进行实现。 spark是通过批流的方式实现,通过减少批的时间间隔来实现流的功能。 二:什么是flink? flink是一个针对于实时进…

Vue3依赖注入

适用场景 尤其针对一个变量需要从顶层组件开始透传,途径很多个子组件最后在第n代子组件使用的时候。对于这些途经的子组件而言,它们不但不使用而且完全不关心该变量具体是什么,只是作为一个传递工具罢了。这种情况下,使用依赖注入…

Windows下搭建Tomcat HTTP服务,发布公网远程访问

文章目录 前言1.本地Tomcat网页搭建1.1 Tomcat安装1.2 配置环境变量1.3 环境配置1.4 Tomcat运行测试1.5 Cpolar安装和注册 2.本地网页发布2.1.Cpolar云端设置2.2 Cpolar本地设置 3.公网访问测试4.结语 前言 Tomcat作为一个轻量级的服务器,不仅名字很有趣&#xff0…

postgres在docker中使用

记录个人开发过程中postgres在docker中的使用,以便后续查看。 Dockerfile 个人是在M1电脑上开发,所以platform使用linux/amd64来兼容amd芯片。 FROM --platformlinux/amd64 postgres:16.1-alpine COPY ./poetrydb.sql /docker-entrypoint-initdb.d/po…

NSSCTF第13页(3)

[FSCTF 2023]巴巴托斯! 看见个输入路径,打了半天没进去,php伪协议也打不进去, 用dirsearch扫一下 看了半天才看出来,那串英文 Access Denied! I love FSCTF Browser 是要用FSCTF浏览器,改一下ua头就行了…

创纪云助力客服系统:通过API和无代码开发实现与电商平台的智能集成

无缝连接电商和客服系统:管家婆的无代码开发解决方案 在电子商务和客户服务日新月异的发展中,企业面临着如何提高效率和客户满意度的挑战。江苏创纪云网络科技有限公司(INNOVATION ERA)推出了一款无需API开发的解决方案&#xff…

Springboot的excel导出

这里导出excel用到的是 阿里巴巴的easyexcel 1、首先导入依赖 <!--alibaba easyexcel--><dependency><groupId>com.alibaba</groupId><artifactId>easyexcel</artifactId><version>2.1.6</version> </dependency> 2、…

灰度发布专题---4、APP灰度发布

APP如何灰度发布 我们前面讲解了配置文件灰度发布、IP切流、静态页灰度发布&#xff0c;但如果是APP该如何灰度发布呢&#xff1f;APP的灰度发布比较简单&#xff0c;也比较传统&#xff0c;不像我们其他程序能完全自动化操作。 APP灰度发布流程 上面这张图是灰度发布流程图&…

Python爬虫遇到重定向URL问题时如何解决?

什么是重定向 重定向是指当用户请求一个URL时&#xff0c;服务器返回一个中断请求的URL的响应。这种情况通常发生在网站对URL进行了修改或者重定向到其他页面的情况下。其中&#xff0c;如果处理不当开发&#xff0c;可能会导致爬虫无法获取所需的数据&#xff0c;从而影响爬虫…