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

news2024/11/27 22:24:00

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

import os

def 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 os

def 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 os

def 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.coloradmin.cn/o/1266915.html

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

相关文章

如何在Rocky Linux中安装nmon

一、环境基础 [rootlocalhost nmon16d]# cat /etc/redhat-release Rocky Linux release 9.2 (Blue Onyx) [rootlocalhost nmon16d]# uname -r 5.14.0-284.11.1.el9_2.x86_64 [rootlocalhost nmon16d]# 二、安装步骤 在Rocky Linux和AlmaLinux等基于RHEL 的发行版上&#xff…

具有“真实触感”的动捕数据手套mhand pro,提供更精确的动作捕捉

随着人工智能的普及和万物互联,vr虚拟技术备受关注,为了更加真实的虚拟现实交互体验,动捕数据手套的使用逐渐普及,vr手套可以实时采集各手指关节运动数据,使用动捕数据手套可以在虚拟现实的场景中实现对真实手部运动的…

AMIS【部署 01】amis前端低代码框架可视化编辑器amis-editor本地部署流程

amis-editor本地部署流程 1.amis-editor是什么1.1 amis是什么1.2 amis-editor是什么 2.amis-editor本地部署2.1 准备阶段2.2 源码修改2.3 构建项目2.4 nginx配置2.5 启动nginx 3.总结 官网仅贴出了本地运行这个项目的步骤: # 1.安装依赖 npm i # 2.等编译完成后本地…

uniapp 页面回退逻辑梳理

在uniapp 开发项目,有时在同一个页面 回退 会有不同的要求,无法通用的用navigaBack去解决 因此 这时候 就可以使用onBackPress方法,根据不同的参数条件来控制回退的页面

数据结构:哈希表讲解

哈希表 1.哈希概念2.通过关键码确定存储位置2.1哈希方法2.2直接定址法2.3除留余数法 3.哈希冲突概念4.解决哈希冲突4.1闭散列4.1.1概念4.1.2哈希表扩容4.1.3存储位置的状态4.1.4关于键值类型4.1.5代码实现 4.2开散列4.2.1概念4.2.2哈希表扩容4.2.3代码实现 4.3开闭散列的对比 1…

JavaScript中的异步处理方法

JavaScript中的异步处理是开发者在日常开发过程中必须面对的一个重要问题。由于JavaScript是单线程的,因此对于一些可能需要长时间执行的操作,如网络请求、IO操作等,如果采用同步的方式,可能会导致应用程序的阻塞,降低…

常见的AI安全风险(数据投毒、后门攻击、对抗样本攻击、模型窃取攻击等)

文章目录 数据投毒(Data Poisoning)后门攻击(Backdoor Attacks)对抗样本攻击(Adversarial Examples)模型窃取攻击(Model Extraction Attacks)参考资料 数据投毒(Data Poi…

Parasoft:正确的静态应用程序安全测试 (SAST) 解决方案

随着软件开发从Web应用扩展到工业物联网(IIoT)设备,静态应用安全测试(SAST)越来越有必要从根本上帮助确保软件的功能安全。根据 Forrester Research的研究,网络攻击是近两年安全漏洞的主要来源。因此&#…

【Python基础】协程(迭代器、生成器、协程、gevent介绍)

🌈欢迎来到Python专栏 🙋🏾‍♀️作者介绍:前PLA队员 目前是一名普通本科大三的软件工程专业学生 🌏IP坐标:湖北武汉 🍉 目前技术栈:C/C、Linux系统编程、计算机网络、数据结构、Mys…

Chromium 下载

下载地址: ##################################### # chromium 下载 https://registry.npmmirror.com/binary.html?pathchromium-browser-snapshots/Win/ # chromium 下载 https://registry.npmmirror.com/binary.html?pathchrome-for-testing/ # chromium 下…

SQL Server :关系模式的键码与闭包计算

一、键码的定义 首先我们给出 键码的定义 如下 定义&#xff1a;已知 R<U,F> 是属性集 U 的关系模式&#xff0c;F是属性集 U 上的一组函数依赖&#xff0c;设 K 为 R<U,F> 中的属性或属性组合&#xff0c;若K ⇒ U - K 且 K 的任何真子集都不能决定 U&#xff0c…

c语言-数据在内存中的存储

文章目录 1. 整数在内存中的存储2. 大小端字节序和字节序判断3. 浮点数在内存中的存储 1. 整数在内存中的存储 1.整数的2进制表示方法有三种&#xff0c;即 原码、反码和补码 2. 三种表示方法均有符号位和数值位两部分&#xff0c;符号位都是用0表示“正”&#xff0c;用1表示“…

【开发实践】使用jstree实现文件结构目录树

一、需求分析 因开发系统的需要&#xff0c;维护服务端导出文件的目录结构。因此&#xff0c;需要利用jstree&#xff0c;实现前端对文件结构目录的展示。 【预期效果】&#xff1a; 二、需求实现 【项目准备】&#xff1a; jstree在线文档&#xff1a;jstree在线文档地址 …

Python基础语法之学习表达式进行符串格式化

Python基础语法之学习表达式进行符串格式化 一、代码二、效果 一、代码 print("11等于%d" % (1 1)) print(f"2/1等于{2 / 1}") print("字符串类型是%s" % type("字符串"))二、效果 坚持追求自己的梦想&#xff0c;即使道路漫长曲折&…

网络和Linux网络_6(应用层)HTTPS协议(加密解密+中间人攻击+证书)

目录 1. HTTPS协议介绍 1.1 加密解密和秘钥的概念 1. 2 为什么要加密 2. 对称加密和非对称加密 2.1 只使用对称加密 2.2 只使用非对称加密 2.3 双方都使用非对称加密 2.4 使用非对称加密对称加密 2.5 中间人攻击MITM 3. 证书的概念和HTTPS的通信方式 3.1 CA认证机构…

手把手教你Autodl平台Qwen-7B-Chat FastApi 部署调用

手把手带你在AutoDL上部署Qwen-7B-Chat FastApi 调用 项目地址&#xff1a;https://github.com/datawhalechina/self-llm.git 如果大家有其他模型想要部署教程&#xff0c;可以来仓库提交issue哦~ 也可以自己提交PR&#xff01; 如果觉得仓库不错的话欢迎star&#xff01;&…

【ASP.NET CORE】.NET 6.0 NET CORE MVC连接SQLSERVER数据库

项目装NuGet包&#xff0c;具体版本如下 在appsettings.json中&#xff0c;添加连接字符串 代码如下&#xff1a; "ConnectionStrings": {"MVCSqlContext": "Serverlocalhost;DatabaseAddress;User IDsa;Passwordsa;TrustServerCertificatetrue&q…

西南科技大学信号与系统A实验三(线性连续时间系统的分析)

一、实验目的 1.掌握用 matlab 分析系统时间响应的方法 2.掌握用 matlab 分析系统频率响应的方法 3.掌握系统零、极点分布与系统稳定性关系 二、实验原理 1. 系统函数 H(s) 系统函数:系统零状态响应的拉氏变换与激励的拉氏变换之比. H(s)=R(s)/E(s) 在 matlab 中可采用…

Vue2或者uniapp 中 使用 iframe 嵌入本地 HTML 页面 并 相互通信。

1.使用 iframe 嵌入本地 HTML 页面&#xff08;以pdfjs为例&#xff09; 在 public 文件夹下新建 static 文件夹&#xff0c;然后将 html 文件及相关引用拷贝到 static 文件夹下 uniapp在src下新建hybrid文件 vue 文件完整代码 <template><div class"wrap&q…

最佳实践| 一文读懂《MongoDB 使用规范及最佳实践》原理

最佳实践| 一文读懂《MongoDB 使用规范及最佳实践》原理 一、MongoDB 使用规范与限制 MongoDB 灵活文档的优势 灵活库/集合命名及字段增减同一字段可存储不同类型数据Json 文档可多层次嵌套文档对于开发而言最自然的表达 MongoDB 灵活文档的烦恼 数据库集合字段名千奇百怪…