阅读本文大概需要6分钟
文件这块知识已经讲了好几篇,
第一篇是2个小例子入门
第二篇是文件语法和场景的一个总览
第三篇是一个综合小例子实战一下,可以融合前面所学的知识
这一篇算是收尾吧,回忆我以前写过的python程序,我觉得python文件处理有这么几个模块非常重要,但是一般没有人告诉你,学会这几招后,让你的工作会更方便更实用一些.
其实我最开始学的时候压根没有人告诉我这几招,后来工作中写代码多了,看了一些别人的开源代码,才发现哇有这么好的模块,真是相见恨晚啊!!
所以分享给大家,可以让初学者少走弯路.也许哪一天你工作中用到这块,可以翻开我的文章看一下~~
1.如何对多个文件中的内容替换
假设在当前目录下有2个文件 test01.txt,test02.txt
我们需要把里面的Java全部替换为Python,一次搞定怎么做呢?
|–test01.txt—
Hi All,
What Is Java?
What Is Programming?
|–test02.txt—
Hi All,
Why do people use Java?
It’s an important tool to learn
Python标准库里面有一个很强大的模块fileinput ,fileinput 模块允许你循环一个或多个文本文件的内容,非常实用
#!/usr/bin/env python
import fileinput
import glob
#利用glob模块过滤出当前目录下所有的txt文件
#inplace=1 标准输出,比如print会被重定向到打开文件
#把每一行去掉回车,然后把java替换为Python
for line in fileinput.input(glob.glob(‘*.txt’),inplace=1):
print line.strip().replace(‘Java’,‘Python’)
fileinput.close()#关闭文件句柄
>>
|–test01.txt—
Hi All,
What Is Python?
What Is Programming?
|–test02.txt—
Hi All,
Why do people use Python?
it’s an important tool to learn
是不是很方便,假如你在批处理邮件,有1000封邮件,你希望把里面的标题改掉,这招是不是很爽.
2.如何列出全目录结构
有的时候我们想列出当前目录下所有文件和子目录,有没有直接的方法
不需要用递归去处理,有python内置的os.walk()函数,一招搞定,是不是很贴心
假如我们有这样的一个目录结构为’C:\myPython’,结构如下:
|—demo—
|–demo_01.exe
|–demo_02.msi
|–other
|–info.docc
|—log-----
|–1110_log.txt
|–1111_log.txt
|–1112_log.txt
|—pic-----
|–0127_1.jpg
|–0127_2.jpg
|–0127_3.jpg
#!/usr/bin/env python
import os
path=r’C:\myPython’
for folderName,subfolders,filenames in os.walk(path):
print ‘The current folder is :’+folderName
for subfolder in subfolders:#列出子目录
print ('Subfolder of ‘+folderName+’: '+subfolder)
for file_name in filenames:#列出文件
print ('File insdie ‘+folderName+’: '+file_name)
>>
The current folder is :C:\myPython
Subfolder of C:\myPython: demo
Subfolder of C:\myPython: log
Subfolder of C:\myPython: pic
The current folder is :C:\myPython\demo
Subfolder of C:\myPython\demo: other
File insdie C:\myPython\demo: demo_01.exe
File insdie C:\myPython\demo: demo_02.msi
The current folder is :C:\myPython\demo\other
File insdie C:\myPython\demo\other: info.docx
The current folder is :C:\myPython\log
File insdie C:\myPython\log: 1110_log.txt
File insdie C:\myPython\log: 1111_log.txt
File insdie C:\myPython\log: 1112_log.txt
The current folder is :C:\myPython\pic
File insdie C:\myPython\pic: 0127_1.jpg
File insdie C:\myPython\pic: 0127_2.jpg
File insdie C:\myPython\pic: 0127_3.jpg
3.如何把多个文件copy到另外一个目录下
有的时候我们需要把一个或者多个文件备份到另外一个目录下,有没有啥办法,简单快捷搞定.有的,python提供了一个高级文件模块叫shutil,可以轻松搞定.
假如我们当前目录下有这样一个文件结构:
|—backup—
|–abc.txt
|—test01.txt—
|—test02.txt—
问题:
我们想把test01.txt和text02.txt备份到backup下,怎么办
解决:
5行代码搞定
#!/usr/bin/env python
#列出所有的文件
#过滤出txt文件
#copy到backup下
import shutil,os
for file in os.listdir(‘.’):
if os.path.splitext(file)[1]==‘.txt’:
shutil.copy(file,os.path.join(‘backup’,file))
也许有同学说怎么拷贝目录,也有现成的模块
shutil.copytree(‘backup’, ‘backup2’)
创建了backup2目录,然后把backup下的文件全部都copy过来
4.删除目录以及所有子目录的文件
很多时候特别是我们要清空一个目录的时候,若这个目录下面有文件,或者不为空,直接用os.rmdir(‘backup2’),会报错,告诉你:The directory is not empty: ‘backup2’
捉急啊,怎么办呢:
用shutil.rmtree(‘backup2’),backup2目录就全部删掉了
细心的同学会发现我的源码上面为啥要加上"#!/usr/bin/env python",因为我的源码都是在win编译执行的,有同学反映这样在linux,mac上运行会报错,确实会有这个问题:
很多小白刚开始学的时候,都会原封不动的把源码拿过来执行_(我当时学的时候也是这样的)_,也许老鸟或者有经验的同学一看,哦这个问题啊,原来是没有引入python解释器的路径
但是对新手来说,可能会花很多时间去debug,去查找问题.
所以我决定宁可我麻烦一点,每一段都加上这个头,也要保证新手能准确无误的运行我的代码,有的时候确实要换位思考一下小白用户的感受.也许你多花几秒钟多写几行,却可以帮助新手,帮助别人节省好多时间,少走很多弯路.
好了文件综合实战小例子就讲到这里啦,希望能给初学者一些启发,若有什么不懂的,也可以留言跟我探讨交流.
最后说一下,原创真的不易,希望大家能够给点支持,欢迎**转发****,**留言,也是对我的一点鼓励和动力.
关于Python学习指南
学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后给大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!
包括:Python激活码+安装包、Python web开发,Python爬虫,Python数据分析,人工智能、自动化办公等学习教程。带你从零基础系统性的学好Python!
👉Python所有方向的学习路线👈
Python所有方向路线就是把Python常用的技术点做整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。(全套教程文末领取)

👉Python学习视频600合集👈
观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

温馨提示:篇幅有限,已打包文件夹,获取方式在:文末
👉Python70个实战练手案例&源码👈
光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

👉Python大厂面试资料👈
我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。


👉Python副业兼职路线&方法👈
学好 Python 不论是就业还是做副业赚钱都不错,但要学会兼职接单还是要有一个学习规划。

👉 这份完整版的Python全套学习资料已经上传,朋友们如果需要可以扫描下方优快云官方认证二维码或者点击链接免费领取【保证100%免费】

本文介绍了Python中文件处理的实用技巧,如批量文件替换、目录遍历、文件复制和删除,以及shutil和os模块的应用。作者强调这些技巧对初学者的重要性,旨在帮助他们提高工作效率。最后,还分享了Python学习资源和实战案例,供读者参考。
1516

被折叠的 条评论
为什么被折叠?



