博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python进阶七_文件操作(二)
阅读量:4621 次
发布时间:2019-06-09

本文共 988 字,大约阅读时间需要 3 分钟。

二.一些特殊用法

1.从现有文件中获取信息(os,stat)

当我们读取一个文件之后,如果还想知道关于这个文件的一些属性信息,怎么得到?在python中,我们可以使用os和stat模块来获取基本信息,来看一个例子:

当然,当我们打开一个“文件”后,不清楚到底是不是文件,还是目录,我们可以这么判断:

2.目录操作(os, fnmatch , glob)

1.列出一个目录下的所有内容

2.创建一个目录

3.删除一个目录(假设该目录下存在文件)

       我们在刚刚创建的new文件夹下新建一个txt文档,试着删除这个文件夹new:

这个时候报错了,错误显示是目录非空,不能删除,查了一下,发现有很多方法,找了个最简洁的,试了一下:

发现文件夹不在了,这就是我们后面要说到的shutil模块。

4.当我们要处理某一类型的文件时该怎么办?

这个时候就可以用模块”fnmatch”和”glob”模块了。我们先从glob说起,现我们在F:\\coding\\python目录下新建了3个目录,分别为new1,new2,new3,在这三个目录下,我们又分别新建了一些其他文件,现在我们就来看看glob的便捷之处:

经过上面的实践之后,又有一个问题了,假如我们需要对某个目录下的不同类型文件进行操作时,该怎么办呢?看下面的例子:

5.当我们需要获取一个目录下的所有文件,怎么办?

       首先我们能想到的当然是glob,递归搜索应该就可以了,如下:

       但是本着偷懒的原则,还是觉得代码繁琐,于是查了一下,果然还有一个os.walk方法,os.walk()返回一个3元素tuple:当前路径,子文件夹名称,文件列表,看一下示例:

6.除了字符串以外,我们需要传递其他数据怎么办?(pickle)

       在python中还有很多其他类型,如list、tuple、dictionary和其它对象,如何转换呢?在Python中,你可以使用Pickle来完成。你可以使用Python标准库中的“pickle”模块完成数据编组。

下面,我们来编组一个包含字符串和数字的list:

这里,我们根据实验很容易就能联想到对象序列化,那么pickle到底能不能支持任意自定义对象的序列化呢?我们试一试:

果然,这与我们的猜测是一致的。

转载于:https://www.cnblogs.com/ainima/p/6331119.html

你可能感兴趣的文章
RabbitMQ的远程Web管理与监控工具
查看>>
JSON脱敏
查看>>
关于mysql中实现replace的sql语句
查看>>
oracle 字符串排序
查看>>
软工实践Alpha冲刺(5/10)
查看>>
[2019/03/17#杭师大ACM]赛后总结(被吊锤记)
查看>>
Java生成不重复的数的方法
查看>>
末学者笔记--keepalived部署
查看>>
Codechef CARDLINE
查看>>
“尸鬼封尽”与面向对象
查看>>
UIPickerView
查看>>
Product→Analyze 分析内存泄露情况
查看>>
黑客与画家:编程是一种艺术创作
查看>>
Python学习笔记整理总结【MySQL】
查看>>
js继承
查看>>
Java线程安全synchronize学习
查看>>
Cookie Session和自定义分页
查看>>
Python sql数据的增删改查简单操作
查看>>
Apache 2.4配置反向代理
查看>>
半路出家的仓库管理员如何成为一个好的前端工程师(二)
查看>>