Python —— 批量替换指定目录下的所有文件中指定字符串
参考:http://blog.csdn.net/zcwfengbingdongguke/article/details/13951527
代码:
#!/usr/bin/python
import os
import re
#list files
def listFiles(dirPath):
fileList=[]
for root,dirs,files in os.walk(dirPath):
for fileObj in files:
fileList.append(os.path.join(root,fileObj))
return fileList
def main():
fileDir = "/home/hadoop/developer/csvpy/replstr"
regex = ur'FUNC_SYS_ADD_ACCDETAIL'
fileList = listFiles(fileDir)
for fileObj in fileList:
f = open(fileObj,'r+')
all_the_lines=f.readlines()
f.seek(0)
f.truncate()
for line in all_the_lines:
f.write(line.replace('$HADOOP_HOME$','/home/ocetl/app/hadoop'))
f.close()
if __name__=='__main__':
main()
ReplaceStrBatch
作用:
批量将指定目录下的所有文件中的$HADOOP_HOME$替换成/home/ocetl/app/hadoop
知识点:
1. def listFiles(dirPath):
定义函数
2. fileList=[]
声明数组
3. for root,dirs,files in os.walk(dirPath):
os.walk("")
返回一个三元组,遍历的路径、当前遍历路径下的目录、当前遍历目录下的文件名
4. os.path.join(root,fileObj)
directory = ["C", "pic", "18x.jpg"]
os.path.join(*directory) #相当于os.path.join("C", "pic", "18x.jpg")
5. regex = ur'FUNC_SYS_ADD_ACCDETAIL'
regex=ur"
" #正则表达式
本例中不加这个正则,不影响运行结果
6. f = open(fileObj,'r+')
r+: 可读可写,若文件不存在,报错
w+: 可读可写,若文件不存在,创建
7. all_the_lines=f.readlines()
.readlines()每次按行读取整个文件内容,将读取到的内容放到一个列表中,返回list类型
7. f.seek(0)
seek()函数回到文件头部,因为迭代器已经访问完了文件的所有行
8. f.truncate()
清空文件内容
仅当以 "r+" "rb+" "w" "wb" "wb+"等以可写模式打开的文件才可以执行该功能
9. if __name__=='__main__':
在if __name__ == "__main__":之后的语句作为模块被调用的时候,语句之后的代码不执行;
直接使用的时候,语句之后的代码执行。通常,此语句用于模块测试中使用
参考:http://keliang.blog.51cto.com/3359430/649318
Python —— 批量替换指定目录下的所有文件中指定字符串的更多相关文章
- python之查询指定目录下的最新文件
使用os模块查询指定目录下的最新文件 import os # 输入目录路径,输出最新文件完整路径 def find_new_file(dir): '''查找目录下最新的文件''' file_lists ...
- [No000073]C#直接删除指定目录下的所有文件及文件夹(保留目录)
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...
- linux复制指定目录下的全部文件到另一个目录中
linux复制指定目录下的全部文件到另一个目录中复制指定目录下的全部文件到另一个目录中文件及目录的复制是经常要用到的.linux下进行复制的命令为cp.假设复制源目录 为 dir1 ,目标目录为dir ...
- c# 获取指定目录下的所有文件并显示在网页上
参考文献: FileInfo 的使用 https://msdn.microsoft.com/zh-cn/library/system.io.fileinfo_methods(v=vs.110).as ...
- php获取指定目录下的所有文件列表
在我们实际的开发需求中,经常用到操作文件,今天就讲一下关于获取指定目录下的所有文件的几种常用方法: 1.scandir()函数 scandir() 函数返回指定目录中的文件和目录的数组. scandi ...
- java压缩指定目录下的所有文件和文件夹的代码
将代码过程较好的代码段备份一下,下边资料是关于java压缩指定目录下的所有文件和文件夹的代码,希望对码农有帮助. String sourceDir="E:\test";int pa ...
- 微软BI 之SSIS 系列 - 在 SSIS 中将指定目录下的所有文件分类输出到不同文件夹
开篇介绍 比如有这样的一个需求,旧的一个业务系统通常将产出的文件输出到同一个指定的目录下的不同子目录,输出的文件类型有 XML,EXCEL, TXT 这些不同后缀的文件.现在需要在 SSIS 中将它们 ...
- linux复制指定目录下的全部文件到另一个目录中,linux cp 文件夹
linux复制指定目录下的全部文件到另一个目录中复制指定目录下的全部文件到另一个目录中文件及目录的复制是经常要用到的.linux下进行复制的命令为cp.假设复制源目录 为 dir1 ,目标目录为dir ...
- C# 删除指定目录下的所有文件及文件夹
using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Tex ...
随机推荐
- angular js 使用$location问题整理
angular js 自带的$location方法十分强大,通过使用$location方法.我们能够获取到server的port.杂乱连接中的path()部分(/所包括的部分). 例: // give ...
- HTML border CSS输出三角形
有以下一段html代码: <!DOCTYPE html> <html lang="en"> <head> <meta charset=&q ...
- android一步一步实现视频clientapp(一)
我开发完毕了一个完整的视频clientapp.如今.分享出来.供刚開始学习的人学习參考(大神就不用看了,比較简单,仅供入门),大家相互交流相互学习. 项目有些功能,我时间也不是非常多.仅仅能时不时更新 ...
- caffe学习--cifar10学习-ubuntu16.04-gtx650tiboost--1g--03--20171103
classification ./examples/cifar10/cifar10_full.prototxt ./examples/cifar10/cifar10_full_iter_70000.c ...
- js的常用小技巧
//类对象转成数组 var domNodes = Array.prototype.slice.call(document.getElementsByTagName("*")); ...
- Urho3D 在Win10下编辑器崩溃的解决方案
本解决方案来自于 https://github.com/urho3d/Urho3D/issues/2417 描述 在Win10中通过CMake启用URHO_ANGELSCRIPT选项的前提下生成Urh ...
- java 表示当前时间的第二天的几点
Calendar cal = Calendar.getInstance(); cal.setTime(new Date()); cal.add(Calendar.DAY_OF_YEAR, 1); ...
- Google论文BigTable拜读
这周少打点dota2,争取把这篇论文读懂并呈现出来,和大家一起分享. 先把论文搞懂,然后再看下和论文搭界的知识,比如hbase,Chubby和Paxos算法. Bigtable: A Distribu ...
- Java 获取本地IP地址
private static String getIpAddress( ){ String ip = ""; Collection<InetAddress> colIn ...
- 前端编程提高之旅(三)----浏览器兼容之IE6
在爱奇艺实习期间,乐帝主要负责移动端活动页面的制作,因为移动浏览器是随着智能手机兴起的,这就决定了移动端不会重蹈浏览器兼容问题的覆辙.一開始就比較好的支持web标准,而纵观整个互联网行业,移动web开 ...