Python:全局替换文件夹下所有文件内容的字符串

2023-10-27

代码参数详解:
import os

def listFiles(dirPath):
    '''遍历指定文件夹下打印所有的文件
    :param    dirPath: 指定遍历的文件夹路径
    :return:  一个列表,包含指定文件夹下所有的文件绝对路径
    '''
    # 准备一个空列表,用来存储遍历数据
    fileList = []
    ''' os.walk(dirPath) :走查指定的文件夹路径
            root  :代表目录的路径
            dirs  :一个list,包含了dirpath下所有子目录文件夹的名字
            files :一个list,包含了所有非目录文件的名字
    '''
    for root, dirs, files in os.walk(dirPath):
        # 循环遍历列表:files【所有文件】,仅得到不包含路径的文件名
        
        for fileObj in files:
            # 空列表写入遍历的文件名称,兵勇目录路径拼接文件名称
            fileList.append(os.path.join(root, fileObj))
            
    # 打印一下列表存储内容:指定文件夹下所有的文件名
    # print(fileList)
    return  fileList

def replace_str(fileDir,old_str,new_str):
    '''
    :param fileDir: 需要替换字符串的文件夹的绝对路径
    :param old_str: 替换前的字符串
    :param new_str: 替换后的字符串
    :return: 替换了字符串后重新写入内容的文件
    '''
    # 调用上面的 listFiles() 方法,获取到所有文件名称的列表
    fileList = listFiles(fileDir)
    # 循环遍历列表内容
    for file_name in fileList:
        # os.path.splitext() 方法,分割文件路径和后缀,返回列表类型的数据
        # 示例 :"D:\\test\\text.csv" 分割为:[ "D:\\test\\text" , ".csv" ]
        res = os.path.splitext(file_name)
        # 取出返回列表,下标为 1 的元素,即为文件名后缀字段
        file_extension = res[1]
        # 例如:我需要替换后缀为 .html 的文件内容
        if file_extension == ".html":
            # 以 utf-8 的编码格式打开并读写文件
            f = open(file_name, 'r+',encoding='utf-8')
            # readlines() 一次性读取所有行文件,可以遍历结果对每一行数据进行处理
            all_the_lines = f.readlines()
            # seek()方法,操作文件游标移动操作,0代表游标移动到文件开头
            f.seek(0)
            # truncate()方法,从光标所在位置进行截断【readlines() 一次性读取所有行文件,所以截取的就是全文】
            f.truncate()
            # 循环遍历文件内容的的每一行字段
            for line in all_the_lines:
                # 替换【待替换字段】后重新写入文件内容
                f.write(line.replace(old_str,new_str))
            # 关闭文件
            f.close()

if __name__ == '__main__':
    # 文件夹路径为变量时,可以使用 os.getcwd() 动态获取
    # fileDir = os.getcwd()

    # 手动指定需要替换字符换的文件夹路径
    fileDir = r'D:\PythonKimo'

    # replace_str(文件夹路径,替换前的字符串,替换后的字符串)
    replace_str(fileDir, 'http://localhost', 'http://127.0.0.1')
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python:全局替换文件夹下所有文件内容的字符串 的相关文章

随机推荐

  • 认识 Kotlin 语言

    Kotlin 的背景 Kotlin 是一门基于 JVM 且与 JAVA 可 100 互通的编程语言 用 JetBrains 的话来说 Kotlin 是更 现代化 更强大 的编程语言 Kotlin 由 JetBrains 在 2010 年开发
  • 如何使用Pytest进行自动化测试(干货)

    为什么需要自动化测试 自动化测试有很多优点 但这里有3个主要的点 可重用性 不需要总是编写新的脚本 除非必要 即使是新的操作系统版本也不需要编写脚本 可靠性 人容易出错 机器不太可能 当运行不能跳过的重复步骤 测试时 速度会更快 全天运行
  • Windows ~~~ ERROR 1045 (28000): Access denied for user ‘root‘@‘localhost‘ (using password: NO)

    安装MySQL5或8出问题 1 ERROR 1045 28000 Access denied for user root localhost using password NO 1 1 解决方法 2 ERROR 1045 28000 Acc
  • 预测房价(Python)

    构建神经网络 深度学习模型的基本步骤 深度学习模型具有一定的通用性 使得深度学习的门槛降低 这是深度学习得以重新占据计算机领域一席之地的重要原因 深度学习均可以从下述五个步骤来完成模型的构建和训练 def load data 从文件导入数据
  • 攻防世界新手区web simple_php

    simple php 不认识show source函数 百度一下 可知这个函数是对测试文件 test php 进行 PHP 语法高亮显示 可大致理解为提交a和b的正确形式可得到flag 百度可知is numeric函数判断是否为数字或数字字
  • 与众不同的协同办公工具——飞书

    其实很早就知道飞书 但真正深入了解 还是最近一个月的事情 因为一个知识付费产品的强烈推荐 我才真正试用了一下 试完之后 很有启发 觉得有必要整理和总结一下 以便后续继续深入使用 飞书有什么不同 我觉得有如下三点 第一 不一样的沟通方式 它力
  • windows使用命令行创建文件echo >test.txt(可以是.gp .js .ts..)

    或多说直接上代码 第一步 打开命令行 进入要创建的目录 C Users gt cd C Users lenovo Desktop node 第二步 输入创建文件的指令 echo gt 文件名字 文件名字 就是常见的文件 例如 txt js
  • 关于echarts中南海诸岛的显示问题

    关于echarts中南海诸岛的显示问题 1 china js 文件中 echarts registerMap china 名字要是 china 不能写成 中国 2 echarts 配置中地图名称 mapName china var myCh
  • sequence中实现寄存器前门访问的4种方法

    uvm sequence中实现寄存器访问的方法 在芯片的eda仿真过程中 有的场景需要在发包控制的时候对dut的寄存器进行一些动态配置 这就需要通过寄存器模型来对相关寄存器进行读写操作 小结三种方法如下 通过uvm top这个全局变量来获取
  • django系列 第一节

    一 安装python 安装django 使用虚拟环境 Virtualenv python3的安装方法 http blog csdn net xudailong blog article details 78309857 django的安装方
  • LeetCode(力扣) 312题:戳气球----动态规划求解附带详细注释

    问题描述 有n个气球 编号为 0 到 n 1 每个气球上都标有一个数字 这些数字存在于数组nums中 现在要求你戳破所有的气球 戳破第 i 个气球 你可以获得nums i 1 nums i nums i 1 枚硬币 这里的 i 1 和 i
  • linux给用户添加文件夹的使用权限

    添加权限 将目录 opt 及其下面的所有文件 子目录的文件主改成 liuhai chown R liuhai liuhai opt root localhost sudo chown R oracle home 选项 c或 changes
  • postgresql 服务无法启动,日志中报如下错误

    1 postgresql 服务无法启动 日志中报如下错误 磁盘空间足够 无法找到来自源 PostgreSQL 的事件 ID 0 的描述 本地计算机上未安装引发此事件的组件 或者安装已损坏 可以安装或修复本地计算机上的组件 1 使用pg co
  • 因特网中的电子邮件--应用层协议

    因特网中的电子邮件 因特网中的电子邮件系统主要由三部分组成 用户代理 user agent 邮件服务器 mail server 简单邮件传输协议 Simple Mail Transfer Protocol SMTP 邮件服务器为电子邮件系统
  • matlab计算数据MEA与RMSE误差指标

    MEA Mean Absolute Error 均方差 和RMSE Root Mean Square Error 均方根误差 是两个经常使用的误差评价指标 用于评价模型预测值与真实值之间的误差大如其间的误差 1 MEA 均方差 将预测结果与
  • fastadmin列表自动刷新功能

    在fastadmin框架中 将列表自动刷新给屏蔽了 如果要开启的话 有点麻烦 需要去重新修改框架核心的js代码 然后还需要重新进行编译 在看开发文档的时候 发现列表是存在refresh的方法 既然有这个方法在 那么是否能结合JS的定时器来做
  • 源码追踪,记typeAliasesPackage的使用(ruoyi-cloud中一个疑问的启发)

    首先 提一个思考题 在mapper xml文件中写sql的时候 parameterType指明入参类型的时候 为什么只需要写String Long Integer等 而不用写java lang String java lang Long这样
  • 又一新闻,Meta研发了超越chatGPT的新平台LLAMA

    一 Meta 全新大语言模型 LLaMA 正通过种子公开发放 2 月 24 日 Meta 公司发布了新的大模型系列 LLaMA Large Language Model Meta AI Meta 宣称 LLaMA 规模仅为竞争对手 Chat
  • POST请求错误 net::ERR_EMPTY_RESPONSE

    1 问题 最近在学习使用node js express写后台项目 首先Network发送options 成功 其后的post请求状态一直为pending 在网络上搜索许多方式未能解决 过了一段时间后未响应状态转为failed 2 解决 其状
  • Python:全局替换文件夹下所有文件内容的字符串

    代码参数详解 import os def listFiles dirPath 遍历指定文件夹下打印所有的文件 param dirPath 指定遍历的文件夹路径 return 一个列表 包含指定文件夹下所有的文件绝对路径 准备一个空列表 用来