python-对大量文件夹名中含特定字符的批量修改

python-对大量文件夹名中含特定字符的批量修改

问题

需求:
一个文件夹下含有众多的子文件夹,其中一些子文件夹的名字含有特定字符,需要用其他字符替换

分析:
问题在于一旦修改了其中一个子文件夹,那么子文件夹的子文件夹路径也会发生改变,就会导致更多地可能,导致递归灾难
因此应该遍历所有的文件夹名,然后按照地址长度逆序排列,修改最长的文件夹名字,不干扰上一级的文件夹路径
而且有另一个规律,
C:/Users/Administrator/Desktop/111/Learn_Java01当前
C:/Users/Administrator/Desktop/111/Learn_Java02期望
只有目标路径的最后文件名与期望的不同,修改才有意义,相同不必多说,无用
如果最后文件夹名字相同,前面的需要修改,那自然等到前面进行到了再进行修改,而不是得陇望蜀

正向非常麻烦,而且需要给修改过的设置特征变量,逆向思维更加简单,但是需要额外的规律作为陪衬才能继续进行,但是逆向思维的方法是最好的

解决

对文件夹列表排序

mydir=sorted(mydir,key=lambda x: len(x),reverse=True)
for i in mydir:
    print(i)
    update_folder(i)

对文件夹进行重命名

def update_folder(folder_my):
    print("开始处理文件夹",folder_my)
    #有一个规律,只有最后一个期望得到不同路径才是正确的,可修改的,否则就是之前修改过的,因此应该是逆序倒着修改
    charc_list=[]
    temp_folder=folder_my
    judge_name=folder_my.split("/")[-1]
    base_path=folder_my[:-len(judge_name)]
    temp_name=judge_name
    check_word = ["111","222"]
    change_word = ["Learn_Java","Learn_Java01"]
    for i in range(0, len(check_word)):
        judge_name = judge_name.replace(check_word[i], change_word[i])
    if temp_name!=judge_name:#如果名字变化说明不同了,应该修改
        os.rename(temp_folder,base_path+judge_name)
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/100237.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • quotename 和 stuff[通俗易懂]

    quotename 和 stuff[通俗易懂]1、QUOTENAME返回带有分隔符的Unicode字符串,分隔符的加入可使输入的字符串成为有效的Microsoft®SQLServer™分隔标识符。语法QUOTENAME(character_string[,quote_character])参数{character}[…n]Unicode字符数据字符串。character_s

    2022年7月25日
    6
  • ajax跨域的解决办法_java如何解决跨域问题

    ajax跨域的解决办法_java如何解决跨域问题什么是跨域问题?跨域问题来源于JavaScript的”同源策略”,即只有协议+主机名+端口号(如存在)相同,则允许相互访问。也就是说JavaScript只能访问和操作自己域下的资源,不能访问和操作其他域下的资源。跨域问题是针对JS和ajax的,html本身没有跨域问题。查看浏览器开发者工具Console报错:Failedtoloadhttp://a.a.com:8080/A/FromServlet?userName=123:No‘Access-Control-Allow-Origin’

    2022年8月24日
    2
  • 模糊PID基本原理及matlab仿真实现(新手!新手!新手!)「建议收藏」

    模糊PID基本原理及matlab仿真实现(新手!新手!新手!)「建议收藏」有关模糊pid的相关知识就把自己从刚接触到仿真出结果看到的大部分资料总结一下,以及一些自己的ps 以下未说明的都为转载内容 1.转自 https://blog.csdn.net/weixin_36340979/article/details/79168052在讲解模糊PID前,我们先要了解PID控制器的原理(本文主要介绍模糊PID的运用,对PID控制器的原理不做详细介绍)。P…

    2022年6月4日
    26
  • proc 储过程

    proc 储过程

    2021年5月3日
    130
  • 如何下载spring源码?「建议收藏」

    如何下载spring源码?「建议收藏」如何下载spring源码?1、打开浏览器输入网址:spring.io回车,进入如下界面,点击project->springframework2、根据序号,目前最新的稳定版本为:5.3.8,点击序号4旁边的“小猫”图标进入下载页面3、进入如下界面,但不是我们需要的,往下划拉,4、划拉到这里为止,并点击如图所示链接5、来到如下界面,继续往下划拉6、划拉到这里,我们就找到了下载源码的链接:https://repo.spring.io其实我们完全可以直接在浏览器中输入该链

    2022年8月12日
    2
  • PostgreSQL数据库psql连接报错connections on Unix domain socket “/pgsql/data/.s.PGSQL.5432“?

    PostgreSQL数据库psql连接报错connections on Unix domain socket “/pgsql/data/.s.PGSQL.5432“?问题现象[postgres@lyp~]$pg_ctl-D/pgsql/data/startwaitingforservertostart….2021-10-1501:42:31.606CST[32453]LOG:redirectinglogoutputtologgingcollectorprocess2021-10-1501:42:31.606CST[32453]HINT:Futurelogoutputwillappearin…

    2022年6月19日
    22

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号