python替换文件中某一行,python批量替换文件名部分文字

  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的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: