python替换文件中某一行,python批量替换文件名部分文字
指定文件夹,指定文件类型,替换该文件夹下全部文件的内容。
注意在窗户下的读写内容需要指定编码,还需要在文件头指定#编码:utf-8编码,避免出现编码问题。
#编码:utf-8
导入操作系统
导入os.path
路径="."
oldStr=。 php
newStr= . html
对于os.walk(路径)中的(目录路径,目录名,文件名):
对于文件名中的文件:
if os.path.splitext(file)[1]== . html :
打印(文件)
filepath=os.path.join(目录路径,文件)
尝试:
text_file=open(filepath, r )
lines=text_file.readlines()
text_file.close()
输出=打开(文件路径, w ,编码=utf-8 )
对于线中的线:
#打印(行)
如果不行:
破裂
如果(行中的oldStr):
tmp=line.split(oldStr)
temp=tmp[0] newStr tmp[1]
输出。写入(临时)
否则:
输出。写入(行)
output.close()
例外情况除外:
打印(例外)
破裂
这个示例可以批量替换文件名和内容
#!/usr/bin/env python
# -*-编码:utf-8 -*-
导入操作系统,回复
定义多重替换(文本,adict):
rx=re.compile( ).join(map(re.escape,adict)))
定义xlat(匹配):
return adict[match.group(0)]
返回rx.sub(xlat,text)
def batrename(curdir,pairs):
对于os.listdir(curdir)中的fn:
newfn=multi_replace(fn,pairs)
if newfn!=fn:
打印(将%s重命名为%s(在%s中)。% (fn,newfn,curdir))
os.rename(os.path.join(curdir,fn),os.path.join(curdir,newfn))
file=os.path.join(curdir,newfn)
如果os.path.isdir(文件):
批处理重命名(文件,对)
继续
文本=打开(文件)。阅读()
newtext=multi_replace(text,pairs)
if newtext!=文本:
打印(重命名%s. %(文件,))
打开(文件, w ).书写(新文本)
if __name__==__main__ :
虽然正确:
oldname=raw_input(旧名称: )
newname=raw_input(新名称: )
如果旧名称和新名称:
batrename(os.path.abspath( . ))),{旧名称:新名称})
否则:中断
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。