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')
python怎么读取桌面上的文件fwrite = open("%s.backup"%filename,'w')
while True:#修改⽂件内容
adline()#按⾏读取内容
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()
filechanger(fpath)
修改前
第1级⽂件夹及⽂件内容
第2级⽂件夹及⽂件内容
第3级⽂件夹及⽂件内容
修改后⽂件内容
如果想更改数据后想保留原⽂件以及修改⽂件名,可屏蔽代码中的两句话
以上就是本⽂的全部内容,希望对⼤家的学习有所帮助,也希望⼤家多多⽀持。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论