shilang 发表于 2017-5-7 10:55:43

python实现修改文件中含有特定语句的行

#-*-coding: UTF-8 -*-
#得到文件夹中所有文件名称的列表
import os
def getFileList(p):
    p = str(p)
    if p =="":
      return []
    #p = p.replace('\\','\\\\')
    #linux下目录中用‘/’,windows下目录中用‘\\’
    if p[-1] != '/':
      p = p + '/'   
    file_list = []
    a = os.listdir(p)
    for i in a:
file_list.append(p + i)
    b =
    #判断是不是文件,把文件名称放入列表b中
    return b
## change the lines in the file
def change_lines( target_files, nav_template_path, ):
    nav = open( nav_template_path, 'r' ).readlines()
    #修改文件中含有以下内容的行段
    start_line = 'title="国家重大科研项目"'
    end_line = 'title="PI 合作项目"'
    for target_file in target_files:
            f = open(target_file,'r')
            target_file_lines = f.readlines()            
            start_point = 0
            end_point = 0         
            for line in target_file_lines:
                if start_line in line:
                  start_point = target_file_lines.index( line )
                if end_line in line:
                     end_point = target_file_lines.index( line )
               break
            pre_part = target_file_lines[ :start_point ]
            end_part = target_file_lines[ (end_point+1): ]
            changed_target_lines = pre_part + nav + end_part
            f.close()
            new_file = open( target_file, 'w' )
            new_file.writelines( changed_target_lines )
            new_file.close()
#待修改的文件夹路径
file_path = '/home/mdc2/Desktop/MDC_websit2.0/module'
#将要替换成的内容所在文件的路径
template_path = '/home/mdc2/Desktop/nav_template'
FileList = getFileList(file_path)
change_lines( FileList,template_path)
页: [1]
查看完整版本: python实现修改文件中含有特定语句的行