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查找目录下指定扩展名的文件实例
Apr 01 Python
Python中实现对Timestamp和Datetime及UTC时间之间的转换
Apr 08 Python
介绍Python的Django框架中的静态资源管理器django-pipeline
Apr 25 Python
python在Windows下安装setuptools(easy_install工具)步骤详解
Jul 01 Python
Python3利用Dlib实现摄像头实时人脸检测和平铺显示示例
Feb 21 Python
Python 中Django验证码功能的实现代码
Jun 20 Python
Django密码系统实现过程详解
Jul 19 Python
Python socket连接中的粘包、精确传输问题实例分析
Mar 24 Python
python实现与redis交互操作详解
Apr 21 Python
python空元组在all中返回结果详解
Dec 15 Python
完美解决torch.cuda.is_available()一直返回False的玄学方法
Feb 06 Python
Python使用MapReduce进行简单的销售统计
Apr 22 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编程中的常见漏洞和代码实例
2014/08/06 PHP
php+ajax无刷新分页实例详解
2015/12/07 PHP
thinkphp框架下实现登录、注册、找回密码功能
2016/04/06 PHP
判断脚本加载是否完成的方法
2009/05/26 Javascript
简单漂亮的js弹窗可自由拖拽且兼容大部分浏览器
2013/10/22 Javascript
jquery等待效果示例
2014/05/01 Javascript
基于Bootstrap+jQuery.validate实现Form表单验证
2014/12/16 Javascript
javascript原型模式用法实例详解
2015/06/04 Javascript
JavaScript简单下拉菜单特效
2016/09/13 Javascript
jQuery选择器之子元素过滤选择器
2017/09/28 jQuery
详解从Vue.js源码看异步更新DOM策略及nextTick
2017/10/11 Javascript
vue项目中将element-ui table表格写成组件的实现代码
2019/06/12 Javascript
javascript实现异形滚动轮播
2019/11/28 Javascript
python中的__init__ 、__new__、__call__小结
2014/04/25 Python
在Gnumeric下使用Python脚本操作表格的教程
2015/04/14 Python
Python实现线程池代码分享
2015/06/21 Python
Python绑定方法与非绑定方法详解
2017/08/18 Python
python画图--输出指定像素点的颜色值方法
2019/07/03 Python
python中seaborn包常用图形使用详解
2019/11/25 Python
python opencv实现gif图片分解的示例代码
2019/12/13 Python
解决Pycharm中恢复被exclude的项目问题(pycharm source root)
2020/02/14 Python
pyautogui自动化控制鼠标和键盘操作的步骤
2020/04/01 Python
CSS3中Transition动画属性用法详解
2016/07/04 HTML / CSS
惠普香港官方商店:HP香港
2019/04/30 全球购物
DeinDesign德国:设计自己的手机壳
2019/12/14 全球购物
英国森林假期:Forest Holidays
2021/01/01 全球购物
如何在存储过程中使用Loop
2016/01/05 面试题
毕业寄语大全
2014/04/09 职场文书
小学教师读书活动总结
2014/07/08 职场文书
2014年外联部工作总结
2014/11/17 职场文书
2014年民政工作总结
2014/11/26 职场文书
农村婚庆主持词
2015/06/29 职场文书
学习党史心得体会2016
2016/01/23 职场文书
市语委办2016年第十九届“推普周”活动总结
2016/04/05 职场文书
创业计划之特色精品店
2019/08/12 职场文书
Python语言规范之Pylint的详细用法
2021/06/24 Python