|
指定文件夹,指定文件类型,替换该文件夹下全部文件的内容。
注意在window下的读写内容需要指定编码,还需要在文件头指定#coding:utf-8 编码,避免出现编码问题。
复制代码 代码如下: #coding:utf-8 import os import os.path
path='.' oldStr='.php' newStr='.html'
for (dirpath,dirnames,filenames) in os.walk(path): for file in filenames: if os.path.splitext(file)[1]=='.html': print(file) filepath=os.path.join(dirpath,file) try: text_file = open(filepath,"r") lines = text_file.readlines() text_file.close() output = open(filepath,'w',encoding= 'utf-8') for line in lines: #print(line) if not line: break if(oldStr in line): tmp = line.split(oldStr) temp = tmp[0] + newStr + tmp[1] output.write(temp) else: output.write(line) output.close() except Exception: print(Exception) break
这个示例可以批量替换文件名和内容
复制代码 代码如下: #!/usr/bin/env python # -*- coding: utf-8 -*-
import os,re
def multi_replace(text,adict): rx = re.compile('|'.join(map(re.escape,adict))) def xlat(match): return adict[match.group(0)] return rx.sub(xlat,text)
def batrename(curdir,pairs): for fn in os.listdir(curdir): newfn = multi_replace(fn,pairs) if newfn != fn: print("Renames %s to %s in %s." % (fn,newfn,curdir)) os.rename(os.path.join(curdir,fn),os.path.join(curdir,newfn)) file = os.path.join(curdir,newfn)
if os.path.isdir(file): batrename(file,pairs) continue
text = open(file).read() newtext = multi_replace(text,pairs) if newtext != text: print("Renames %s." % (file,)) open(file,'w').write(newtext)
if __name__=="__main__": while True: oldname = raw_input("Old name: ") newname = raw_input("New name: ") if oldname and newname: batrename(os.path.abspath('.'),{oldname:newname}) else: break
您可能感兴趣的文章:- python实现的用于搜索文件并进行内容替换的类实例
- Python基于正则表达式实现文件内容替换的方法
- python逐行读取文件内容的三种方法
- Python创建文件和追加文件内容实例
- Python文件操作,追加文本内容实例
- Python批量修改文本文件内容的方法
- Python实现给文件添加内容及得到文件信息的方法
- Python读取文件内容的三种常用方式及效率比较
- Python实现文件内容批量追加的方法示例
- Python实现替换文件中指定内容的方法
(编辑:安卓应用网)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|