python批量修改文件夹及其子文件夹下的文件内容


Posted in Python onMarch 15, 2019

前言:前几天我看一位同学要修改很多文件中的数据,该文件数据很规律,一行只有三个数,需要将每行最后一个数字改为负数,但文件有上千个,分布在每个文件夹下面以及它的多级子文件夹下,看他用excel手动改数据改的很痛苦,我突然想到用Python访问和操作文件,修改文件内容都很方便,于是在对Python不熟悉的情况下花了大半天写了下面的程序。

大概思路:先获取文件夹下所有文件名存在列表中,然后循环遍历访问文件内容,修改后写入新文件,考虑到还有子文件夹,这里用了递归的方法访问子文件夹的文件,最后修改完再把原文件删除,将新文件修改为原文件名,具体程序功能见代码注释。

完整代码:

#coding=utf-8#可加入中文注释
#函数功能:将指定文件夹下所有文件和子文件夹下的文件遍历,并修改文件内容
import os
fpath ="/home/hyj/桌面/files_1"#这里是你的第一级文件夹的路径
def filechanger(path):
 filenames = os.listdir(path)#将path路径下的所有文件名存入列表filenames 
 for filename in filenames:#循环遍历每个文件
 domain = os.path.abspath(path)#获取规范的路径
 filename = os.path.join(domain,filename)#带路径的文件名
 if os.path.isdir(filename): # 如果是文件夹进入递归
  filechanger(filename)
  continue
 fread = open(filename,'r')
 fwrite = open("%s.backup"%filename,'w')
 while True:#修改文件内容
  line=fread.readline()#按行读取内容
  if len(line)>0:#当改行为空,表明已经读取到文件末尾,退出循环
  content = line.split()#因为每行有三个TAB符号分开的数字,将它们分开
  print(content)
  content[2] = '-'+content[2]
  print(content)
  newcont = content[0]+'\t'+content[1]+'\t'+content[2]+'\r'
  fwrite.write(newcont)#修改后写入新文件
  else:
  break
 fread.close()
 fwrite.close()
 os.remove(filename)#如果想更改数据后想保留原文件以及修改文件名可屏蔽这一句和下一句
 os.rename("%s.backup" % filename, filename)#
filechanger(fpath)

修改前

第1级文件夹及文件内容

python批量修改文件夹及其子文件夹下的文件内容
python批量修改文件夹及其子文件夹下的文件内容

第2级文件夹及文件内容

python批量修改文件夹及其子文件夹下的文件内容
python批量修改文件夹及其子文件夹下的文件内容

第3级文件夹及文件内容

python批量修改文件夹及其子文件夹下的文件内容
python批量修改文件夹及其子文件夹下的文件内容

修改后文件内容

python批量修改文件夹及其子文件夹下的文件内容

python批量修改文件夹及其子文件夹下的文件内容
python批量修改文件夹及其子文件夹下的文件内容

如果想更改数据后想保留原文件以及修改文件名,可屏蔽代码中的两句话

python批量修改文件夹及其子文件夹下的文件内容

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python入门篇之编程习惯与特点
Oct 17 Python
浅析python中SQLAlchemy排序的一个坑
Feb 24 Python
利用Anaconda完美解决Python 2与python 3的共存问题
May 25 Python
Python实现复杂对象转JSON的方法示例
Jun 22 Python
python数字图像处理实现直方图与均衡化
May 04 Python
Python中GeoJson和bokeh-1的使用讲解
Jan 03 Python
解决pyinstaller打包发布后的exe文件打开控制台闪退的问题
Jun 21 Python
python可视化篇之流式数据监控的实现
Aug 07 Python
Python之Django自动实现html代码(下拉框,数据选择)
Mar 13 Python
python3的pip路径在哪
Jun 23 Python
Python自动发送和收取邮件的方法
Aug 12 Python
python图片灰度化处理的几种方法
Jun 23 Python
使用PyQtGraph绘制精美的股票行情K线图的示例代码
Mar 14 #Python
详解Django+uwsgi+Nginx上线最佳实战
Mar 14 #Python
TensorFlow卷积神经网络之使用训练好的模型识别猫狗图片
Mar 14 #Python
Python通过TensorFlow卷积神经网络实现猫狗识别
Mar 14 #Python
python3实现钉钉消息推送的方法示例
Mar 14 #Python
详解Python做一个名片管理系统
Mar 14 #Python
在Python中使用Neo4j的方法
Mar 14 #Python
You might like
PHP实现类似题库抽题效果
2018/08/16 PHP
Jquery 滑入滑出效果实现代码
2010/03/27 Javascript
JavaScript中使用构造函数实现继承的代码
2010/08/12 Javascript
jquery ztree实现下拉树形框使用到了json数据
2014/05/14 Javascript
js控制鼠标事件移动及移出效果显示
2014/10/19 Javascript
60个很实用的jQuery代码开发技巧收集
2014/12/15 Javascript
javascript实现详细时间提醒信息效果的方法
2015/03/11 Javascript
jQuery源码分析之Callbacks详解
2015/03/13 Javascript
javascript中传统事件与现代事件
2015/06/23 Javascript
理解JavaScript中worker事件api
2015/12/25 Javascript
jquery实现简单的遮罩层
2016/01/08 Javascript
AngularJS中的指令全面解析(必看)
2016/05/20 Javascript
JavaScript调试的多个必备小Tips
2017/01/15 Javascript
JavaScript箭头函数_动力节点Java学院整理
2017/06/28 Javascript
微信小程序 Buffer缓冲区的详解
2017/07/06 Javascript
React Native中的RefreshContorl下拉刷新使用
2017/10/09 Javascript
JavaScript中的高级函数
2018/01/04 Javascript
React Native 自定义下拉刷新上拉加载的列表的示例
2018/03/01 Javascript
[53:49]LGD vs Fnatic 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
python里将list中元素依次向前移动一位
2014/09/12 Python
python自动化测试之setUp与tearDown实例
2014/09/28 Python
详解Python中的type()方法的使用
2015/05/21 Python
常见的python正则用法实例讲解
2016/06/21 Python
python开发利器之ulipad的使用实践
2017/03/16 Python
浅谈Pandas中map, applymap and apply的区别
2018/04/10 Python
python实现爬取图书封面
2018/07/05 Python
Python类装饰器实现方法详解
2018/12/21 Python
Python Json数据文件操作原理解析
2020/05/09 Python
pygame用blit()实现动画效果的示例代码
2020/05/28 Python
python二维图制作的实例代码
2020/12/03 Python
c++工程师面试问题
2013/08/04 面试题
2014年大学生党员评议表自我评价
2014/09/20 职场文书
2015年库房工作总结
2015/04/30 职场文书
民事答辩状范本
2015/05/21 职场文书
2015年艾滋病防治工作总结
2015/05/22 职场文书
2015年中职班主任工作总结
2015/05/25 职场文书