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中字符串常用函数或方法(Python3.5字符串常用操作实例详解)
- python爬取微博登录数据(Python实现爬取马云的微博功能示例)
- pythonopencv自定义阈值算法(理想高通滤波实现Python opencv示例)
- python3语法规则(详解Python3注释知识点)
- python列表中的数组(Python3.4学习笔记之列表、数组操作示例)
- python 多线程与多进程(python 多线程串行和并行的实例)
- python抖音视频收集(python制作抖音代码舞)
- python的opencv图片识别(OpenCV-Python 摄像头实时检测人脸代码实例)
- pythonweb和nodejs(Node与Python 双向通信的实现代码)
- python查找含特定字符的字符串(Python实现查找字符串数组最长公共前缀示例)
- pythonpick教程(Python使用Pickle模块进行数据保存和读取的讲解)
- python里list操作大全(Python列表List知识点总结)
- python怎么判断文件大小(python3实现指定目录下文件sha256及文件大小统计)
- python 组合数据类型(详解Python3 对象组合zip和回退方式*zip)
- 百度免费翻译接口(基于python实现百度翻译功能)
- pythonturtle库画图代码(用Python中的turtle模块画图两只小羊方法)
- 得这个 难治病 的人太多了,300个人赶到杭州商量怎么办(得这个难治病的人太多了)
- 经度,世界时间腕表的灵魂(世界时间腕表的灵魂)
- 阿里最新财报公布 三季度营收增长3 ,将增加150亿美元回购额度 在美股价小涨(阿里最新财报公布)
- 赵薇时胖时瘦 最近变美少女 原因在这里 躺着就变瘦(赵薇时胖时瘦最近变美)
- 学会这26种姿势,你就可以和兵哥哥切磋了(你就可以和兵哥哥切磋了)
- 吴彦祖陈冠希 恩怨 ,失去曾让他流泪的女友,终遇走过18年真爱(吴彦祖陈冠希恩怨)
热门推荐
- css style常用属性(CSS中的content属性使用教程)
- VMware ESXi 5.5部署与配置图解过程(VMware ESXi 5.5部署与配置图解过程)
- 什么是mime编码(Mime类型与文件后缀对照表)
- sql语言怎么删除某列(SQL删除多列语句的写法)
- docker node 分阶段构建(Docker安装、创建镜像、加载并运行NodeJS程序的详细过程)
- 自制cssdiv导航栏(css利用transform skewX制作平行四边形导航菜单)
- with(nolock)的用法
- sql server代理无法启动服务(SQL Server作业失败:无法确定所有者是否有服务器访问权限的解决方法)
- python 内存读写(详解python持久化文件读写)
- vue弹窗模板(Vue登录页面的动态粒子背景插件实现)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9