python列出文件夹下所有文件(python批量修改文件夹及其子文件夹下的文件内容)
类别:脚本大全 浏览量:718
时间:2022-01-14 02:25:58 python列出文件夹下所有文件
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级文件夹及文件内容
修改后文件内容
如果想更改数据后想保留原文件以及修改文件名,可屏蔽代码中的两句话
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持开心学习网。
原文链接:https://blog.csdn.net/HuYingJie_1995/article/details/82355033
您可能感兴趣
- 如何使用python定时运行(Python实现定时执行任务的三种方式简单示例)
- pythonweb大数据分析(Python实现的大数据分析操作系统日志功能示例)
- python的编码方式(Python中文编码知识点)
- python numpy数组拼接(Python快速转换numpy数组中Nan和Inf的方法实例说明)
- python如何使用yield(YII2.0框架行为Behavior深入详解)
- pythonselenium判断网页加载完成(python 实现selenium断言和验证的方法)
- python的模块与包与库(Python 中包/模块的 `import` 操作代码)
- python中怎么查看函数的用法(Python中函数的基本定义与调用及内置函数详解)
- python 获取数组任意组合(Python实现求两个数组交集的方法示例)
- python在mysql创建数据库(python3对接mysql数据库实例详解)
- 用python做一个表白视频(python仿抖音表白神器)
- 2021-10-23 10:04:24
- python语言的读取图像(详解python读取image)
- nginx事件模型有几种(Python实现监控Nginx配置文件的不同并发送邮件报警功能示例)
- python中赋值语句规则(Python动态赋值的陷阱知识点总结)
- python字典的值排序(python 对字典按照value进行排序的方法)
- 泪目 这位 刷屏 的英雄,是全椒人的骄傲(泪目这位刷屏)
- 人从众 火炎焱 全椒再现 正月十六走太平 的魅力(人从众火炎焱全椒再现)
- 官宣 全椒籍明星许海峰 奚秀兰 方芳 王璐瑶携手回家 走太平(全椒籍明星许海峰)
- 以前全椒人是怎么过冬的 满满都是回忆(以前全椒人是怎么过冬的)
- NVIDIA显卡份额冲上88 A饭发愁 游戏优化恐没A卡份了(NVIDIA显卡份额冲上88A饭发愁)
- AMD YES A卡还是N卡 A卡和N卡的区别(AMDYESA卡还是N卡)
热门推荐
- axios 请求前校验参数(js实现axios限制请求队列)
- SQLServer清理日志文件方法案例详解(SQLServer清理日志文件方法案例详解)
- pyclips入门(phpinfo的知识点总结)
- vue3.0 自定义组件(Vue 3.0自定义指令的使用入门)
- python怎么用pandas读取两列数据(python 利用pandas将arff文件转csv文件的方法)
- pyqt5实例讲解(PyQt5实现简易计算器)
- python scrapy 框架原理(一步步教你用python的scrapy编写一个爬虫)
- 未能加载文件或程序集 解决办法
- 计算引擎flink(浅谈实时计算框架Flink集群搭建与运行机制)
- cssborder三角形怎么画(使用CSS的border属性绘制各种几何形状的方法)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9