首页 > 其他分享 >***新版MJ数据处理工作流

***新版MJ数据处理工作流

时间:2024-05-09 18:12:07浏览次数:33  
标签:root filename base 数据处理 path 新版 MJ os folder

 

 

批量重命名

import os
import re
import shutil

def replace_double_underscore(folder_path):
    for root, dirs, files in os.walk(folder_path):
        for filename in files:
            if "__" in filename:
                new_filename = filename.replace("__", "_")
                os.rename(os.path.join(root, filename), os.path.join(root, new_filename))

def rename_with_incremental_suffix(folder_path):
    seen = {}
    for root, dirs, files in os.walk(folder_path):
        for filename in files:
            base, ext = os.path.splitext(filename)
            if base in seen:
                seen[base] += 1
                new_filename = f"{base}({seen[base]}){ext}"
            else:
                seen[base] = 0
                new_filename = filename
            os.rename(os.path.join(root, filename), os.path.join(root, new_filename))

def remove_prefix_before_first_underscore(folder_path):
    for root, dirs, files in os.walk(folder_path):
        for filename in files:
            base, ext = os.path.splitext(filename)
            base = re.sub(r'^[^_]*_', '', base)
            new_filename = f"{base}{ext}"
            os.rename(os.path.join(root, filename), os.path.join(root, new_filename))

def remove_digits_and_following_text(folder_path):
    for root, dirs, files in os.walk(folder_path):
        for filename in files:
            base, ext = os.path.splitext(filename)
            match = re.search(r'\d', base)
            if match:
                index = match.start()
                pos = base.rfind('_', 0, index)
                if pos != -1:
                    base = base[:pos]
                new_filename = f"{base}{ext}"
                
                # Check if new filename already exists, if so, add incremental suffix
                i = 1
                while os.path.exists(os.path.join(root, new_filename)):
                    new_filename = f"{base}({i}){ext}"
                    i += 1
                
                os.rename(os.path.join(root, filename), os.path.join(root, new_filename))

def replace_underscores_with_spaces(folder_path):
    for root, dirs, files in os.walk(folder_path):
        for filename in files:
            new_filename = filename.replace("_", " ")
            os.rename(os.path.join(root, filename), os.path.join(root, new_filename))

def main():
    folder_path = input("请输入文件夹地址:")
    
    # 第一步操作
    replace_double_underscore(folder_path)
    print("第一步操作完成")
    
    # 第二步操作
    rename_with_incremental_suffix(folder_path)
    print("第二步操作完成")
    
    # 第三步操作
    remove_prefix_before_first_underscore(folder_path)
    rename_with_incremental_suffix(folder_path)
    print("第三步操作完成")
    
    # 第四步操作
    remove_digits_and_following_text(folder_path)
    print("第四步操作完成")
    
    # 第五步操作
    replace_underscores_with_spaces(folder_path)
    print("第五步操作完成")

if __name__ == "__main__":
    main()

 

标签:root,filename,base,数据处理,path,新版,MJ,os,folder
From: https://www.cnblogs.com/zly324/p/18182865

相关文章

  • [转]openEuler 22.03 (LTS-SP1)安装最新版Docker(踩坑及解决方案)
    原文地址:openEuler22.03(LTS-SP1)安装最新版Docker(踩坑及解决方案)_openeulerdocker-CSDN博客openEuler22.03LTS-SP1要是直接yuminstalldocker,默认安装docker是18.09.0,这个版本Docker有个bug,所以还是安装个最新版Docker。1、先增加docker官方仓库[root@apisqlyum.repo......
  • 免费电子书下载网站收集(最新版)
    免费 pdfepubmobiawz3txt电子书下载站点收集(freedownload)1、四季图书下载中心:  https://foramu.net/2、艾娃书站  https://evaporsllc.com/ ......
  • dama0103第1章 数据管理第2章 数据处理伦理第3章 数据治理
    第1章数据管理1.数据管理的定义:是为了交付、控制、保护并提升数据和信息资产的价值,在其整个生命周期中制定计划、制度、规程和实践活动,并执行和监督的过程。2.数据管理目标:1)理解并支撑企业机器利益相关方的信息需求得到满足。2)获取、存储、保护数据和确保数据资产的完整性3)确......
  • SpringBoot3.1.5对应新版本SpringCloud开发(2)-Eureka的负载均衡
    Eureka的负载均衡负载均衡原理负载均衡流程老版本流程介绍当order-servic发起的请求进入Ribbon后会被LoadBalancerInterceptor负载均衡拦截器拦截,拦截器获取到请求中的服务名称,交给RibbonLoadBanlancerCient,然后RibbonLoadBanlancerCient会将服务名称当作服务id交给Dynamic......
  • Python自动化测试中JSON数据处理遇到的错误
    在接口自动化测试领域,使用Excel管理测试数据是一种常见的做法。本文将分享一个实际案例,介绍在Python自动化测试框架中,如何从响应结果中提取所需数据,并探讨在处理JSON格式数据时遇到的一个典型问题及其解决方案。首先,让我们了解测试数据的基本格式。在Excel中,我们定义了一个名为ex......
  • SpringBoot3.1.5对应新版本SpringCloud开发(1)-Eureka注册中心
    服务的提供者和消费者服务之间可以通过Spring提供的RestTemplate来进行http请求去请求另一个Springboot的项目,这就叫做服务间的远程调用。当一个服务通过远程调用去调用另一个服务时,被调用的服务就叫做服务的提供者,调用服务的服务就叫做服务的消费者。一个服务可以既是服务的提......
  • 使用新版flask-script时报错No module named flask._compat和cannot import name ‘_r
    flask版本:3.0.3Flask-Script:2.0.6Flask-script使用及错误Nomodulenamedflask._compat解决方法windows下推荐解决方案,点击flask_script进入init.py文件或虚拟环境\Lib\site-packages\flask_script_init_.pylinux下cd到目录/usr/local/lib/python3.12/site-packages......
  • 数据处理
        #!usr/bin/envpython#-*-coding:utf-8-*-"""@author:Suyue@file:speedeeinsert.py@time:2024/04/29@desc:"""#importnumpyasnpimportpandasaspddf1=pd.read_excel('G:/尺度速度.xls')file_path=&......
  • nginx最新版编译(1.26.0)
    1.下载nginx源码包https://nginx.org/en/download.html 2.下载编译nginx依赖包,可根据自己需求进行下载#pcre(处理正则表达式)http://downloads.sourceforge.net/project/pcre/pcre/8.45/pcre-8.45.zip#zlib(Nginx使用zlib来实现对HTTP响应内容的压缩,以提高网络传输效......
  • 1 名工程师轻松管理 20 个工作流,创业企业用 Serverless 让数据处理流程提效
    作者:岳洋、陈德全、刘静娜北京语势科技有限公司成立于2023年6月,语势科技定位为“智能投资时代的主题入口”,在资管行业从以机构为核心转向以用户为核心的变革时代,通过打造主题投资引擎,赋能普惠投资一体化,打造以投资者和资管机构为主题和核心、自然语言交互形式为入口的“新桥......