python代码实现文件名包含指定字符的替换或改名
本帖最后由 icehack 于 2019-10-29 10:39 编辑下载论坛视频教程的文件名被打了广告,看起来很乱。自己用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("替换完成)
本帖最后由 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分钟,但也是我第一次照猫画虎。
新建了二十个文件夹,然后把“新建文件夹- 副本”全部替换掉了,第一次感觉到了程序代码的力量!
对楼主感激不尽!
@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 能批量修改文件夹的名称吗?看着好像只是文件名吧 本帖最后由 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
我发的代码就是做这个事的
亲,如何运行呢? psyzhl 发表于 2019-11-1 13:32
import os
path=R'F:\Temp\1'
fileList = os.listdir(path)
第一次发贴被你这么重视,我都不好意思 了我也是新手,以前是搞powerBuild的现在转学Python,边学边用于项目生产客户那也可以变现的,现在诱导我7岁的小孩也学习编程,用Ptyhon写作弊植物大战僵尸,用python作弊 黑暗黎明 这两款小孩喜欢玩的游戏,有兴趣才会有动力,多练多写我们都会成长的 您的代码很厉害,至少是个入门学生的教学方面的大师。
廖雪峰等的教程我2.X看到3.X,云里雾里虽然很长时间但是也没看明白啥。一段代码都没成功。
您这个很切合我的实际,很有实用性,而且直观简单。
我在论坛等很多地方下载了很多批量文件,比如几千集的那种小说mp3等。
这个不仅是学习的好资料,还是我的工具了。
我发现可以同时搞定文件和文件夹。虽然如果懂程序代码有经验,可能觉得我这么样,是大惊小怪,少见多怪了。
同时查找文件和文件夹,同时替换名字或者去掉,仅仅需要几行代码,太神奇了。
而且这种安全感,这种代表时代的良心的感觉,很难得。
我资源特别多,也能找到特别多的软件,可是软件和资源多了,难免有很多特殊情况难以判断。
您这个代码解决了我的大问题,还重启了我学编程的意愿。
以后我多找些例子,多改多学,然后也写一些自己的。
今天终于知道一段纯python代码怎么执行了,哈哈。
页:
[1]
2