吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 4584|回复: 11
收起左侧

[Python 转载] python代码实现文件名包含指定字符的替换或改名

  [复制链接]
icehack 发表于 2019-10-29 10:32
本帖最后由 icehack 于 2019-10-29 10:39 编辑

下载论坛视频教程的文件名被打了广告,看起来很乱。自己用python写了个批量 替换改名的代码支持子目下的文件改名

[Python] 纯文本查看 复制代码
import os

path=R'E:\Python 视频\Python语法基础和常用模块使用(四)【2019千锋Linux】(79集)'
fileList = os.listdir(path)
#要查找的字符串
strname = '千锋教育'
#替换后的字符串,为空则册除strname = '千锋教育'
newname =''
for root, dirs, files in os.walk(path, topdown=False):
    for name in files:
        if name.find(strname) != -1 :
            oldFileName = os.path.join(root, name)
            newFileName = os.path.join(root,name.replace(strname,newname))
            os.rename(oldFileName, newFileName)
print("替换完成)

免费评分

参与人数 1吾爱币 +2 热心值 +1 收起 理由
psyzhl + 2 + 1 谢谢@Thanks!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

psyzhl 发表于 2019-11-1 13:32
本帖最后由 psyzhl 于 2019-11-1 13:33 编辑
icehack 发表于 2019-10-29 14:10
sxyqlwb 发表于 2019-10-29 10:53
能批量修改文件夹的名称吗?看着好像只是文件名吧
root是路径,dirs 是 ...

import os
path=R'F:\Temp\1'
fileList = os.listdir(path)
#要查找的字符串
strname = '新建文件夹 - 副本'
#替换后的字符串,为空则删除strname = '新建文件夹 - 副本'
newname ='我要的文件夹名字'
for root, dirs, files in os.walk(path, topdown=False):
    for name in files:
        if name.find(strname) != -1 :
            oldFileName = os.path.join(root, name)
            newFileName = os.path.join(root,name.replace(strname,newname))
            os.rename(oldFileName, newFileName)
    for name in dirs:
        if name.find(strname) != -1:
            oldDirName = os.path.join(root, name)
            newDirName = os.path.join(root, name.replace(strname, newname))
            os.rename(oldDirName, newDirName)
print("替换完成")









请教大佬,是这样吧?
我运行成功了,不过感觉这样很生硬。
我不是程序员,完全生硬地照搬照抄您的内容,特别神奇特别厉害,但我总觉得我这个外行好像会被笑话的感觉。

人生中第一次学会如何运行python,感激不尽!

有些激动,语无伦次

好多年前就知道python,还看过视频,一直没学会,没成功运行过任何代码。今天偶尔看到你的贴子,找了一个ide,折腾了3个多小时,终于成功运行了您的代码。第一次,见笑见笑

然后又花了大概5分钟,弄出了这一段。这次虽然5分钟,但也是我第一次照猫画虎。

新建了二十个文件夹,然后把“新建文件夹- 副本”全部替换掉了,第一次感觉到了程序代码的力量!

对楼主感激不尽!

todd_52pojie 发表于 2019-10-29 11:31
@echo off
set /p str1= 请输入要替换的文件(文件夹)名字符串(可替换空格):
set /p str2= 请输入替换后的文件(文件夹)名字符串(去除则直接回车):
echo.
echo 正在修改文件(夹)名中,请稍候……
for /f "delims=" %%a in ('dir /s /b ^|sort /+65535') do (
                        if "%%~nxa" neq "%~nx0" (
                             set "file=%%a"
                             set "name=%%~na"
                             set "extension=%%~xa"
                             call set "name=%%name:%str1%=%str2%%%"
                             setlocal enabledelayedexpansion
                             ren "!file!" "!name!!extension!" 2>nul
                             endlocal
        )
    )
exit
sxyqlwb 发表于 2019-10-29 10:53
能批量修改文件夹的名称吗?看着好像只是文件名吧
 楼主| icehack 发表于 2019-10-29 14:10
本帖最后由 icehack 于 2019-10-29 14:11 编辑

sxyqlwb 发表于 2019-10-29 10:53
能批量修改文件夹的名称吗?看着好像只是文件名吧

root是路径,dirs 是目录, files是文件,再加一个for 循环对   dirs 目录进行判断就支持对目录改名了
向往的歌 发表于 2019-10-29 21:10
怎样实现文件名包含指定字符的替换或改名啊???…………
 楼主| icehack 发表于 2019-10-30 09:48
向往的歌 发表于 2019-10-29 21:10
怎样实现文件名包含指定字符的替换或改名啊???…………

我发的代码就是做这个事的
向往的歌 发表于 2019-10-30 11:30
icehack 发表于 2019-10-30 09:48
我发的代码就是做这个事的

亲,如何运行呢?
 楼主| icehack 发表于 2019-11-1 13:52
psyzhl 发表于 2019-11-1 13:32
import os
path=R'F:\Temp\1'
fileList = os.listdir(path)

第一次发贴被你这么重视,我都不好意思 了我也是新手,以前是搞powerBuild的现在转学Python,边学边用于项目生产客户那也可以变现的,现在诱导我7岁的小孩也学习编程,用Ptyhon写作弊植物大战僵尸,用python作弊 黑暗黎明 这两款小孩喜欢玩的游戏,有兴趣才会有动力,多练多写我们都会成长的
psyzhl 发表于 2019-11-1 14:45
您的代码很厉害,至少是个入门学生的教学方面的大师。

廖雪峰等的教程我2.X看到3.X,云里雾里虽然很长时间但是也没看明白啥。一段代码都没成功。

您这个很切合我的实际,很有实用性,而且直观简单。

我在论坛等很多地方下载了很多批量文件,比如几千集的那种小说mp3等。

这个不仅是学习的好资料,还是我的工具了。

我发现可以同时搞定文件和文件夹。虽然如果懂程序代码有经验,可能觉得我这么样,是大惊小怪,少见多怪了。

同时查找文件和文件夹,同时替换名字或者去掉,仅仅需要几行代码,太神奇了。

而且这种安全感,这种代表时代的良心的感觉,很难得。

我资源特别多,也能找到特别多的软件,可是软件和资源多了,难免有很多特殊情况难以判断。

您这个代码解决了我的大问题,还重启了我学编程的意愿。

以后我多找些例子,多改多学,然后也写一些自己的。

今天终于知道一段纯python代码怎么执行了,哈哈。

您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-16 15:40

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表