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中AND、OR的一个使用小技巧
Feb 18 Python
Python实现购物程序思路及代码
Jul 24 Python
python添加模块搜索路径方法
Sep 11 Python
Python3字符串encode与decode的讲解
Apr 02 Python
python requests使用socks5的例子
Jul 25 Python
python子线程退出及线程退出控制的代码
Oct 16 Python
Tensorflow 模型转换 .pb convert to .lite实例
Feb 12 Python
pytorch SENet实现案例
Jun 24 Python
Python爬虫爬取糗事百科段子实例分享
Jul 31 Python
django表单中的按钮获取数据的实例分析
Jul 31 Python
浅析python 字典嵌套
Sep 29 Python
Python排序函数的使用方法详解
Dec 11 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/02/09 PHP
thinkphp5 migrate数据库迁移工具
2018/02/20 PHP
thinkphp5.1框架模板布局与模板继承用法分析
2019/07/19 PHP
用javascript模仿ie的自动完成类似自动完成功的表单
2012/12/12 Javascript
javascript通过class来获取元素实现代码
2013/02/20 Javascript
基于rem的移动端响应式适配方案(详解)
2017/07/07 Javascript
基于twbsPagination.js分页插件使用心得(分享)
2017/10/21 Javascript
JS面向对象的程序设计相关知识小结
2018/05/26 Javascript
详解微信小程序-canvas绘制文字实现自动换行
2019/04/26 Javascript
VUE单页面切换动画代码(全网最好的切换效果)
2019/10/31 Javascript
vue.js的简单自动求和计算实例
2019/11/08 Javascript
js实现简单放大镜效果
2020/03/07 Javascript
javascript实现时间日期的格式化的方法汇总
2020/08/06 Javascript
vue+vant实现购物车全选和反选功能
2020/11/17 Vue.js
[44:40]2018DOTA2亚洲邀请赛3月30日 小组赛A组Liquid VS OG
2018/03/31 DOTA
python中xrange和range的区别
2014/05/13 Python
浅谈MySQL中的触发器
2015/05/05 Python
Python利用Beautiful Soup模块搜索内容详解
2017/03/29 Python
Tornado协程在python2.7如何返回值(实现方法)
2017/06/22 Python
HTML中使用python屏蔽一些基本功能的方法
2017/07/07 Python
解读python如何实现决策树算法
2018/10/11 Python
python多线程与多进程及其区别详解
2019/08/08 Python
Python语言异常处理测试过程解析
2020/01/08 Python
python实现人机猜拳小游戏
2020/02/03 Python
Python tkinter之ComboBox(下拉框)的使用简介
2021/02/05 Python
萌新HTML5 入门指南(二)
2020/11/09 HTML / CSS
高品质和独特的产品世界:Creations and Collections
2018/01/07 全球购物
viagogo意大利票务平台:演唱会、体育比赛、戏剧门票
2018/01/26 全球购物
人民教师求职自荐信
2014/03/12 职场文书
投资入股合作协议书
2014/10/28 职场文书
实训报告范文大全
2014/11/04 职场文书
追悼词范文大全
2015/06/23 职场文书
新学期主题班会
2015/08/17 职场文书
2016七一建党节慰问信
2015/11/30 职场文书
《搭石》教学反思
2016/02/18 职场文书
python 爬取天气网卫星图片
2021/06/07 Python