python的N个小功能(文件内容的匹配替换)

# -*- coding: utf-8 -*-

"""

Created on Fri Feb 17 20:25:05 2017

@author: who

"""

import os

import os.path

import re

import string

rootdir=r‘D:\test‘

for parent, dirnames, filenames in os.walk(rootdir):   # 三个参数:分别返回1.父目录 2.所有文件夹名字(不含路径) 3.所有文件名字

try:

for filename in filenames:

filenamepre=os.path.splitext(filename.decode("gbk"))[0];#文件名前缀

filetype=os.path.splitext(filename.decode("gbk"))[1].lower();#文件扩展名

pswpath = os.path.join(parent, filename.decode("gbk"));

tmppath = os.path.join(r‘D:\testxx‘,filename.decode("gbk")) #写到另一个文件夹#

if filetype==‘.txt‘:

a=string.find(filenamepre,‘9999‘)                      ####符合类型的文件####

if a==0:

tmp_file = open(tmppath, "w")

with open(pswpath) as f:

lines = f.readlines()

for line in lines:                  ####一行一行读取 ####

if line.find(‘aaa‘) > -1:         ####找到含aaa有的这行,匹配出对应整数数字####

m=re.compile(‘aaa([0-9]+)‘)

ms=m.search(line)

print ms.group(1)

line.replace(ms.group(1),filenamepre)   ####进行替换

tmp_file.write(line.replace(ms.group(1),filenamepre))  ###写出替换的该行

else:

tmp_file.write(line)

tmp_file.close()

else:

tmp_file = open(tmppath, "w")

with open(pswpath) as f:

lines = f.readlines()

for line in lines:                  ####一行一行读取 ####

tmp_file.write(line)

tmp_file.close()

except IOError:

pass

时间: 2024-08-07 09:27:07

python的N个小功能(文件内容的匹配替换)的相关文章

Python跳过第一行读取文件内容

Python编程时,经常需要跳过第一行读取文件内容.比较容易想到是为每行设置一个line_num,然后判断line_num是否为1,如果不等于1,则进行读取操作.相应的Python代码如下: [python] view plain copy input_file = open("C:\\Python34\\test.csv") line_num = 0 for line in islice(input_file, 1, None): line_num += 1 if (line_num

linux几种常见的文件内容查找和替换命令

作为一个以前没怎么接触过linux的小白,开始使用linux,各种不习惯,这周遇到一个文件内容测查找和替换的需求.学习了以下几种实现方式: 1.vi命令下的查找和替换 1.1 vi下的查找 /pattern<Enter> :向下查找pattern匹配字符串 ?pattern<Enter>:向上查找pattern匹配字符串使用了查找命令之后,使用如下两个键快速查找:n:按照同一方向继续查找N:按照反方向查找pattern是需要匹配的字符串,例如:/name<Enter> 

python的N个小功能(更新文件)

# -*- coding: utf-8 -*-"""Created on Wed Feb 22 13:40:03 2017 @author: Administrator"""import sys def readFile(filename): ##读文件 re = {} for line in open(filename): arr = line.strip().split('\t') # s.strip(rm) 删除s字符串中开头.结尾处,位于

人生苦短,我学python之服务器如何返回一个文件内容到客户端

上一篇文章说了服务器如何给客户端发送一个字符串,这篇文章我们来说说,如何发送一个文章给客户端(浏览器). 写一个socket的server端 #!/usr/bin/env python # coding:utf-8 import socket def handle_request(client):     buf = client.recv(1024)     # client.send(bytes("HTTP/1.1 200 OK\r\n\r\n",encoding='utf-8')

python的N个小功能(连接数据库并下载相应位置的图片)

##############################################################################################################连接数据库, mysqldb.py########################### ############################################################################### # -*- coding: u

python 实现类似sed命令的文件内容替换

#!/usr/bin/env python     #_*_coding:utf-8 _*_     #replace()方法把字符串中的 old(旧字符串)替换成new(新字符串),如果指定第三个参数max,则替换不超过 max 次.     #语法:str.replace(old, new[, max])     import sys,os     old_text, new_text, file_name = sys.argv[1], sys.argv[2], sys.argv[3]   

python的N个小功能(找到要爬取的验证码链接,并大量下载验证码样本)

# -*- coding: utf-8 -*- """ Created on Mon Mar 21 11:04:54 2017 @author: sl """ import requests import time ################################################################################# ################先找到对应的爬取验证码连接,例如我要爬

python的N个小功能之正则匹配

1.. 匹配任意除换行符"\n"外的字符:2.*表示匹配前一个字符0次或无限次:3.+或*后跟?表示非贪婪匹配,即尽可能少的匹配,如*?重复任意次,但尽可能少重复,惰性匹配:4. .*? 表示匹配任意数量的重复,但是在能使整个匹配成功的前提下使用最少的重复.如:a.*?b匹配最短的,以a开始,以b结束的字符串.如果把它应用于aabab的话,它会匹配aab和ab. 案例1line="2017-01-26 12:55:30-INFO"LogTime = re.compi

数据库config.php文件内容解释及替换方法

在网上我们下载的程序,有很多并没有安装程序,而是需要我们手动修改数据库配置文件 有的还需要网站路径如域名等,下面由魅力网络为大家解释 <?php$pe['db_host'] = 'localhost';服务器名$pe['db_name'] = 'cps1';数据库名$pe['db_user'] = 'root';数据库用户名$pe['db_pw'] = '';数据库密码$pe['db_coding'] = 'utf8';编码$pe['url_model'] = 'pathinfo_safe';安