抱歉,您的浏览器无法访问本站
本页面需要浏览器支持(启用)JavaScript
了解详情 >

代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#!/usr/bin/python

import os
import re

myDir ='/MyFiles/'
for filePath,dirNames,curFiles in os.walk(myDir):
for f in curFiles:
print("Start process:"+f)
file1=os.path.join(filePath,f)
fileObj=open(file1,'r',encoding='UTF-8')
fileContent=fileObj.read()
file2=re.sub('\d+','00000',fileContent)
fileObj2=os.path.join(filePath,f)
fileObj3=open(fileObj2,'w',encoding='UTF-8')
fileObj3.write(file2)
fileObj.close()
fileObj3.close()

函数说明

os 是 Python 内置模块,一般用来操作文件或者文件夹。

re 也是 Python 内置模块,用来正则表达式匹配。

简单读取

1
os.listdir(r'D:\MyFiles')

文件夹中只有文件时直接使用 listdir()方法即可获取指定文件夹下的所有文件,然后再使用 for 遍历文件即可。

文件夹嵌套

如果指定文件夹下还有子文件夹时,可以使用 if not os.path.isdir(file) 来判断是否是文件夹,如果不是才打开当前文件,但是如果还有多层嵌套文件夹,这样就比较麻烦了,这时就可以使用 os.walk() 方法,如上代码所示,传入指定路径参数即可递归找出该文件夹内的所有文件,os.path.join将当前文件路径和文件名拼接在一起,即可组合成文件绝对路径,用来操作文件读写。

字符替换

Python 内置 replace() 方法可以用来简单的字符替换

1
2
str = "https://blog.zerow.cn";
print str.replace("blog", "www");

如果需要正则表达式来处理复杂的字符串替换,可以使用 re 正则表达式模块中的 re.sub 方法

1
re.sub('\d+','0000',"农夫山泉成立于1996年9月26日")

以上代码将所有数字替换为:0000,显示结果:农夫山泉成立于0000年0000月0000日。

参考说明

官方-re — 正则表达式操作

Python正则表达式操作指南

评论