目录
- 直接替换,使用replace()
- 灵活替换,加入正则,使用re.sub
直接替换,使用replace()
比如要将文章里的内容,山替换为海:
程序运行后的效果:
程序附上:
import os #导入模块
def replace_row(): #定义函数名称
for foldName, subfolders, filenames in os.walk(path): #用os.walk方法取得path路径下的文件夹路径,子文件夹名,所有文件名
for filename in filenames: #遍历列表下的所有文件名
if filename.endswith('.txt'): #当文件名以.txt后缀结尾时
f = open(os.path.join(foldName,filename),"r") #以只读模式打开文件
data=f.read() #令data为读取的文章内容
data_a = data.replace("山","海") #将data里的山替换为海
with open(os.path.join(foldName,filename), 'w') as f: #以写模式打开文件
f.write(data_a) # 重新写入修改后的文件内容
print( os.path.join(foldName,filename),'added content successfully!') #输出提示
if __name__ == '__main__':
path = r'E:\我的学习\编程\Python\PythonTest2\Test2' #运行程序前,记得修改主文件夹路径!
replace_row() #调用定义的函数,注意名称与定义的函数名一致
灵活替换,加入正则,使用re.sub
比如,我要将文章里以海结尾的一句话去掉,但是这句话并没有固定是一样的内容。
运行后:
程序附上:
#!/usr/bin/python
#coding:utf-8
import os,re #导入模块
def replace_row(): #定义函数名称
for foldName, subfolders, filenames in os.walk(path): #用os.walk方法取得path路径下的文件夹路径,子文件夹名,所有文件名
for filename in filenames: #遍历列表下的所有文件名
if filename.endswith('.txt'): #当文件名以.txt后缀结尾时
f = open(os.path.join(foldName,filename),"r") #以只读模式打开文件
data=f.read() #令data为读取的文章内容
data_a =re.sub('[\u4e00-\u9fa5]*海,','',data) #将data里以海结尾的一句话去掉
with open(os.path.join(foldName,filename), 'w') as f: #以写模式打开文件
f.write(data_a) # 重新写入修改后的文件内容
print( os.path.join(foldName,filename),'added content successfully!') #输出提示
if __name__ == '__main__':
path = r'E:\我的学习\编程\Python\PythonTest2\Test2' #运行程序前,记得修改主文件夹路径!
replace_row() #调用定义的函数,注意名称与定义的函数名一致