html 空格_Python 批量替换html中%20 为 空格

项目需要:python遍历文件夹及子文件夹下的所有文件.htm文件,然后替换字符

手动替换不是程序员应有的样子,使用python

方法1:

import os


def show_files(path, all_files):
    # 首先遍历当前目录所有文件及文件夹
    file_list = os.listdir(path)
    # 准备循环判断每个元素是否是文件夹还是文件,是文件的话,把名称传入list,是文件夹的话,递归
    for file in file_list:
        # 利用os.path.join()方法取得路径全名,并存入cur_path变量,否则每次只能遍历一层目录
        cur_path = os.path.join(path, file)
        # 判断是否是文件夹
        if os.path.isdir(cur_path):
            show_files(cur_path, all_files)
        else:
            if os.path.splitext(cur_path)[1]=='.htm': 
                all_files.append(cur_path)

    return all_files


# 传入空的list接收文件名
contents = show_files("E:DeskTopworkssssssssssssssssssssss2019三亚军方在线考试系统船舶避碰App材料html", [])
# 循环打印show_files函数返回的文件名列表
print(len(contents))
i=0
for path in contents:
    i=i+1
    print(i)
    print(path)
    #读入
    f = open(path, "r", encoding="gbk")
    #获取内容
    str1 = f.read()
    #替换内容
    str2 = str1.replace("%20"," ")
    #写出文件
    ff = open(path, "w")
    #将信息写入缓冲区
    ff.write(str2)
    #刷新缓冲区
    ff.flush()
    f.close()
    ff.close()
    
   

方法2

来自评论区的提示,使用pathlib的rglob 直接遍历当前文件及所有子文件夹下的所有htm文件

import pathlib
p1=pathlib.Path('/Users/liuchunlei/python/test3/')
htmls=p1.rglob('*.htm')
for htm in htmls:
    print(htm)

其他:

  • Path.is_dir()与Path.is_file()
print(Path('D:/NoneExistsPath').is_dir())
print(Path('D:/NoneExistsPath').is_file())
  • Path.exists()
  • Path.iterdir()

当path为文件夹时,通过yield产生path文件夹下的所有文件、文件夹路径的迭代器

p = Path.cwd()
for i in p.iterdir():
    print(i)

参考:

CSDN-专业IT技术社区-登录​blog.csdn.net
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值