文件这块知识已经讲了好几篇,

第一篇是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可以处理哪些文件_4招小技巧,带你迅速提升Python文件处理的逼格相关推荐

  1. Excel文件 实用操作小技巧

    Excel文件实用 操作小技巧 目录 1.为Excel文件 添加打开密码  审阅  - 保护工作簿 - 保护结构和窗口-输入密码点击确定 2.为Excel文件 添加作者信息 在Exce文件 图标上右键 ...

  2. installshield安装文件的制作小技巧--附加数据库

    installshield安装文件的制作小技巧--附加数据库 最近又一个项目接近尾声,不过对方要求安装必须傻瓜化,尽量不用手动配置.于是就的重新捡起两三年没有用过的installshield了.找到 ...

  3. Linux命令删除find,浅谈Linux下通过find命令进行rm文件删除的小技巧

    我们经常会通过find命令进行批量操作,如:批量删除旧文件.批量修改.基于时间的文件统计.基于文件大小的文件统计等,在这些操作当中,由于rm删除操作会导致目录结构变化,如果要通过find结合rm的操作 ...

  4. 坚果云 android 操作历史,#坚果云每日小技巧分享# 你也该学会使用文件历史版本了...

    原标题:#坚果云每日小技巧分享# 你也该学会使用文件历史版本了 文件历史版本是坚果云一直重点推荐的内容,很多人虽然没有使用过或者极少使用过,但是你一旦有了使用它的机会你就会发现文件历史版本功能可以帮助 ...

  5. windows小技巧1——路径太长导致文件无法删除

    windows小技巧1--路径太长导致文件无法删除 路径太长 原因: 1.超过了大多数Windows所能接受的255个字节(NTFS文件系统没有这个问题,它可以容纳更长的路径) 2.文件的深度超过 1 ...

  6. python win32转pdf 横版_Python 小技巧之 Office 文件转 PDF

    文章来源于公众号:Python技术 作者:派森酱 在日常的生活工作中,难免需要用到一些 小Tip 来解决工作中遇到的小难题,今天的文章给大家安利一个方便快捷的小技巧,将 Office(doc/docx ...

  7. mac系统python读取文件路径_Python小技巧:3个处理文件路径的简单方法

    原标题 | Python 3 Quick Tip: The easy way to deal with file paths on Windows, Mac and Linux 作者 | Adam G ...

  8. python json操作_4个小窍门,让你在Python中高效使用JSON

    字典和列表是 Python的两种数据类型,也是用来处理JSON的完美工具.本文将主要分享以下内容: 如何载入.编写JSON? 如何在命令行上优化.校验JSON? 如何通过使用JMESPath对JSON ...

  9. 每日小技巧~教你如何用 Python 快速批量转换 HEIC 文件

    最近打算做一批日历给亲朋好友,但是从 iPhone 上导出的照片格式是 HEIC 格式,而商家的在线制作网站不支持这种图片格式 PS:HEIC 是苹果采用的新的默认图片格式,它能在不损失图片画质的情况 ...

最新文章

  1. larvel nginx 配置
  2. 【JS】变量、作用域和内存问题
  3. 静态代码块的执行顺序
  4. nginx防盗链功能
  5. 服务器系统排行榜,5大主流服务器操作系统对比导购
  6. ALFA机器视觉深度学习外观检测自学习人工智能软件——ocr字符检测
  7. 百度热力图颜色说明_千变万化的热力图,总有一款适合你!
  8. 微信小程序无法获取个人信息,用户昵称变成了微信用户,怎么办
  9. 对自己代码规整度的强烈执念....
  10. 团队管理:新业务团队如何结合绩效来度量开发目标
  11. 云主机装黑果实践(4):阿里轻量机上变色龙bootloader启动问题
  12. Tomcatnbsp;Servletnbsp;JSPamp;nbs…
  13. 测试基础-动态黑盒测试
  14. 来一份Android动画全家桶
  15. amr格式转换为MP3格式
  16. WIN7下搭建CORDOVA环境
  17. 十大高薪热门职业健康观察报告出炉!程序员求生欲最强
  18. 计算机中专升大专难不难,自考大专难吗?
  19. 1秒变大神,学会这个PPT技巧,让你的PPT比别人好看30倍!
  20. 【图像配准】基于matab SAR-SIFT改进的SAR图像配准【含Matlab源码 2336期】

热门文章

  1. [刘阳Java]_CSS数字分页效果
  2. 团队-爬虫豆瓣top250项目-模块开发过程
  3. Project Euler 97 :Large non-Mersenne prime 非梅森大素数
  4. hdu 1559 最大子矩阵 (简单dp)
  5. 万网空间的数据库配置方法
  6. C#3.0新特性 扩展方法
  7. Oracle Text简介
  8. 老式计算机显示器是什么类型的,电脑显示器面板类型有哪些,显示器什么面板好?...
  9. python爬取苏州天气并用excel来保存
  10. c语言某年某月的天数switch,在C语言中 使用switch语句编写“显示某年某月的天数”程序:...