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中RawString的理解介绍
Jul 07 Python
python实现图书管理系统
Mar 12 Python
Pyspider中给爬虫伪造随机请求头的实例
May 07 Python
对命令行模式与python交互模式介绍
May 12 Python
解决新版Pycharm中Matplotlib图像不在弹出独立的显示窗口问题
Jan 15 Python
Python pycharm 同时加载多个项目的方法
Jan 17 Python
win10子系统python开发环境准备及kenlm和nltk的使用教程
Oct 14 Python
利用Python绘制Jazz网络图的例子
Nov 21 Python
Python爬虫代理池搭建的方法步骤
Sep 28 Python
利用Python实现学生信息管理系统的完整实例
Dec 30 Python
pytho matplotlib工具栏源码探析一之禁用工具栏、默认工具栏和工具栏管理器三种模式的差异
Feb 25 Python
关于python中readlines函数的参数hint的相关知识总结
Jun 24 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/03/20 PHP
Yii使用技巧大汇总
2015/12/29 PHP
基于JQuery的密码强度验证代码
2010/03/01 Javascript
JS getStyle获取最终样式函数代码
2010/04/01 Javascript
当鼠标移动时出现特效的JQuery代码
2013/11/08 Javascript
解析jQuery的三种bind/One/Live事件绑定使用方法
2013/12/30 Javascript
基于jQuery的JavaScript模版引擎JsRender使用指南
2014/12/29 Javascript
基于jQuery.Hz2Py.js插件实现的汉字转拼音特效
2015/05/07 Javascript
jQuery实现可关闭固定于底(顶)部的工具条菜单效果
2015/11/06 Javascript
Ext JS框架中日期函数的用法及日期选择控件的实现
2016/05/21 Javascript
React Js 微信禁止复制链接分享禁止隐藏右上角菜单功能
2017/05/26 Javascript
微信小程序自定义模态对话框实例详解
2017/08/16 Javascript
React Native悬浮按钮组件的示例代码
2018/04/05 Javascript
JS简单判断是否在微信浏览器打开的方法示例
2019/01/08 Javascript
jQuery Datatables 动态列+跨列合并实现代码
2020/01/30 jQuery
python逐行读取文件内容的三种方法
2014/01/20 Python
恢复百度云盘本地误删的文件脚本(简单方法)
2017/10/21 Python
numpy中实现二维数组按照某列、某行排序的方法
2018/04/04 Python
python flask实现分页的示例代码
2018/08/02 Python
python3 cvs将数据读取为字典的方法
2018/12/22 Python
Python生成指定数量的优惠码实操内容
2019/06/18 Python
python 中xpath爬虫实例详解
2019/08/26 Python
wxPython之wx.DC绘制形状
2019/11/19 Python
python如何对链表操作
2020/10/10 Python
python实现简单的井字棋游戏(gui界面)
2021/01/22 Python
匡威帆布鞋美国官网:Converse美国
2016/08/22 全球购物
俄罗斯最大的隐形眼镜销售网站:Ochkov.Net
2021/02/07 全球购物
超级搞笑检讨书
2014/01/15 职场文书
大学毕业感言一句话
2014/02/06 职场文书
元旦联欢会主持词
2014/03/26 职场文书
大二学习计划书范文
2014/04/27 职场文书
餐饮商业计划书范文
2014/04/29 职场文书
大学生求职信
2014/06/17 职场文书
评先进个人材料
2014/12/29 职场文书
药店收银员岗位职责
2015/04/07 职场文书
2015年派出所工作总结
2015/04/24 职场文书