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的urllib库提交WEB表单
Feb 24 Python
Python设计模式中单例模式的实现及在Tornado中的应用
Mar 02 Python
python3编码问题汇总
Sep 06 Python
用pickle存储Python的原生对象方法
Apr 28 Python
python-opencv 将连续图片写成视频格式的方法
Jan 08 Python
详解Python下载图片并保存本地的两种方式
May 15 Python
Python实现蒙特卡洛算法小实验过程详解
Jul 12 Python
Tensorflow 实现分批量读取数据
Jan 04 Python
Docker部署Python爬虫项目的方法步骤
Jan 19 Python
python实现秒杀商品的微信自动提醒功能(代码详解)
Apr 27 Python
Python爬虫基于lxml解决数据编码乱码问题
Jul 31 Python
Python 多进程原理及实现
Dec 21 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
使用swoole扩展php websocket示例
2014/02/13 PHP
thinkphp ajaxfileupload实现异步上传图片的示例
2017/08/28 PHP
jQuery 1.0.4 - New Wave Javascript(js源文件)
2007/01/15 Javascript
jsTree树控件(基于jQuery, 超强悍)[推荐]
2009/09/01 Javascript
DIV+CSS+JS不间断横向滚动实现代码
2013/03/19 Javascript
jQuery源码解读之removeClass()方法分析
2015/02/20 Javascript
javascript实现详细时间提醒信息效果的方法
2015/03/11 Javascript
纯Javascript实现ping功能的方法
2015/03/20 Javascript
JS实现跟随鼠标立体翻转图片的方法
2015/05/04 Javascript
详解AngularJS中的依赖注入机制
2015/06/17 Javascript
jQuery的图片轮播插件PgwSlideshow使用详解
2016/08/11 Javascript
利用jsonp跨域调用百度js实现搜索框智能提示
2016/08/24 Javascript
通过一个简单的例子学会vuex与模块化
2017/11/22 Javascript
解决IE11 vue +webpack 项目中数据更新后页面没有刷新的问题
2018/09/25 Javascript
基于Element的组件改造的树形选择器(树形下拉框)
2020/02/27 Javascript
JS Html转义和反转义(html编码和解码)的实现与使用方法总结
2020/03/10 Javascript
[05:04]完美世界携手游戏风云打造 卡尔工作室地图界面篇
2013/04/23 DOTA
python+django快速实现文件上传
2016/10/24 Python
python实现简单遗传算法
2018/03/19 Python
python批量赋值操作实例
2018/10/22 Python
CSS3中border-radius属性设定圆角的使用技巧
2016/05/10 HTML / CSS
英国一家集合了众多有才华设计师品牌的奢侈店:Wolf & Badger
2018/04/18 全球购物
远程学习的教学用品和家庭学习资源:Really Good Stuff
2020/04/27 全球购物
普通大学毕业生自荐信
2013/11/04 职场文书
十八大闭幕感言
2014/01/22 职场文书
数学高效课堂实施方案
2014/03/29 职场文书
园艺师求职信
2014/04/27 职场文书
廉洁教育学习材料
2014/05/19 职场文书
中学生教师节演讲稿
2014/09/03 职场文书
推普标语口号大全
2015/12/26 职场文书
会计工作自我鉴定范文
2019/06/21 职场文书
IDEA 链接Mysql数据库并执行查询操作的完整代码
2021/05/20 MySQL
Golang生成Excel文档的方法步骤
2021/06/09 Golang
分享一个vue实现的记事本功能案例
2022/04/11 Vue.js
vue项目proxyTable配置和部署服务器
2022/04/14 Vue.js
baselines示例程序train_cartpole.py的ImportError
2022/05/20 Python