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

 更新时间:2019年03月15日 08:41:07   作者:从心开始yjh  
这篇文章主要为大家详细介绍了python批量修改文件夹及其子文件夹下的文件内容,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

前言:前几天我看一位同学要修改很多文件中的数据,该文件数据很规律,一行只有三个数,需要将每行最后一个数字改为负数,但文件有上千个,分布在每个文件夹下面以及它的多级子文件夹下,看他用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级文件夹及文件内容


第2级文件夹及文件内容


第3级文件夹及文件内容


修改后文件内容


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

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

相关文章

  • pytorch 实现张量tensor,图片,CPU,GPU,数组等的转换

    pytorch 实现张量tensor,图片,CPU,GPU,数组等的转换

    今天小编就为大家分享一篇pytorch 实现张量tensor,图片,CPU,GPU,数组等的转换,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-01-01
  • vscode配置anaconda3的方法步骤

    vscode配置anaconda3的方法步骤

    这篇文章主要介绍了vscode配置anaconda3的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-08-08
  • 如何将Python字符串转换为JSON的实现方法

    如何将Python字符串转换为JSON的实现方法

    在本教程中,你将学习JSON的基础知识,它是什么,常用在哪里以及它的语法,还将看到如何在Python中将字符串转换为JSON,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-12-12
  • Python自定义一个异常类的方法

    Python自定义一个异常类的方法

    在本篇文章里小编给大家分享了关于Python自定义一个异常类的详细步骤和实例代码,有兴趣的朋友们参考学习下。
    2019-06-06
  • python 爬虫 实现增量去重和定时爬取实例

    python 爬虫 实现增量去重和定时爬取实例

    今天小编就为大家分享一篇python 爬虫 实现增量去重和定时爬取实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-02-02
  • Django 实现前端图片压缩功能的方法

    Django 实现前端图片压缩功能的方法

    今天小编就为大家分享一篇Django 实现前端图片压缩功能的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-08-08
  • keras小技巧——获取某一个网络层的输出方式

    keras小技巧——获取某一个网络层的输出方式

    这篇文章主要介绍了keras小技巧——获取某一个网络层的输出方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-05-05
  • Python周期任务神器之Schedule模块使用详解

    Python周期任务神器之Schedule模块使用详解

    这篇文章主要为大家详细介绍了Python中的周期任务神器—Schedule模块的安装和初级、进阶使用方法,文中的示例代码讲解详细,需要的可以参考一下
    2022-04-04
  • python偏函数的实例用法总结

    python偏函数的实例用法总结

    在本篇文章里小编给大家整理的是一篇关于python偏函数的实例用法总结内容,有兴趣的朋友们可以跟着学习参考下。
    2021-07-07
  • tensorflow 保存模型和取出中间权重例子

    tensorflow 保存模型和取出中间权重例子

    今天小编就为大家分享一篇tensorflow 保存模型和取出中间权重例子,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-01-01

最新评论