注意在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
您可能感兴趣的文章:
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。