python实现文件夹名/文件名/文件内容的关键字替换

##############################################
# 作者:Yohanan
# 功能:实现文件夹名/文件名/文件内容的关键字查找替换
##############################################

import os
import re

#替换文件夹的名字,包括文件夹的字符串含有子字符串
def replaceDirName(rootDir, oldStr, newStr):
    for dirpath, dirNames, fileNames in os.walk(rootDir, topdown = False):
        for dirName in dirNames:
            if oldStr in dirName:
                dirNameOld = os.path.join(dirpath,dirName)
                dirNameNew = os.path.join(dirpath,dirName.replace(oldStr,newStr))
                print(dirNameOld + ' --> '+ dirNameNew)
                os.rename(dirNameOld, dirNameNew)

#替换文件名
def replaceFileName(rootDir, oldStr, newStr):
    for dirpath, dirNames, fileNames in os.walk(rootDir):
        for fileName in fileNames:
            if oldStr in fileName:
                fileNameOld = os.path.join(dirpath, fileName)
                fileNameNew = os.path.join(dirpath,fileName.replace(oldStr, newStr))
                print(fileNameOld + ' --> '+ fileName)
                os.renames(fileNameOld, fileNameNew)

#替换文件中的内容
def replaceFileContent(rootDir,oldStr,newStr):
    for dirpath,dirNames,fileNames in os.walk(rootDir):
        for fileName in fileNames:
            fileObj = os.path.join(dirpath,fileName)
            f = open(fileObj,'r+')
            all_the_lines=f.readlines()
            f.seek(0)
            f.truncate()
            for line in all_the_lines:
                f.write(line.replace(oldStr,newStr))
            f.close()

#执行流
if __name__ == '__main__':
    try:

        # rootDir = r"E:\python\test2\FileTest"
        # oldStr = "doc"
        # newStr = "new"
        # replaceDirName(rootDir, oldStr, newStr)

        rootDir = r"E:\python\test2\FileTest"
        oldStr = "doc"
        newStr = "new"
        replaceFileName(rootDir, oldStr, newStr)
        pass
    except Exception as e:
        print(e)


  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值