11、操作文件和目录

一、OS
1、Python内置的os模块也可以直接调用操作系统提供的接口函数


查看操作系统类型

2、Windows不提供


查看操作系统详细信息

3、环境变量
查看环境变量

4、某环境变量值
查看某环境变量值

二、目录操作:
操作文件和目录的函数一部分放在os模块中,一部分放在os.path模块中,这一点要注意一下。查看、创建和删除目录可以这么调用:

查看当前目录的绝对路径:

os.path.abspath('.')
'/Users/michael'

在某个目录下创建一个新目录,首先把新目录的完整路径表示出来:

os.path.join('/Users/michael', 'testdir')
'/Users/michael/testdir'

然后创建一个目录:

os.mkdir('/Users/michael/testdir')

删掉一个目录:

os.rmdir('/Users/michael/testdir')

三、要拆分路径时,也不要直接去拆字符串,而要通过os.path.split()函数,这样可以把一个路径拆分为两部分,后一部分总是最后级别的目录或文件名:

os.path.split('/Users/michael/testdir/file.txt')
('/Users/michael/testdir', 'file.txt')
os.path.splitext()可以直接让你得到文件扩展名,很多时候非常方便:

os.path.splitext('/path/to/file.txt')
('/path/to/file', '.txt')

四、文件操作使用下面的函数。假定当前目录下有一个test.txt文件:

对文件重命名:

os.rename('test.txt', 'test.py')

删掉文件:

os.remove('test.py')

五、shutil模块提供了copyfile()的函数,你还可以在shutil模块中找到很多实用函数,它们可以看做是os模块的补充
六、利用Python的特性来过滤文件。比如我们要列出当前目录下的所有目录,只需要一行代码:

[x for x in os.listdir('.') if os.path.isdir(x)]
['.lein', '.local', '.m2', '.npm', '.ssh', '.Trash', '.vim', 'Applications', 'Desktop', ...]
要列出所有的.py文件,也只需一行代码:

[x for x in os.listdir('.') if os.path.isfile(x) and os.path.splitext(x)[1]=='.py']
['apis.py', 'config.py', 'models.py', 'pymonitor.py', 'test_db.py', 'urls.py', 'wsgiapp.py']

六、把变量从内存中变成可存储或传输的过程称之为序列化,在Python中叫pickling,在其他语言中也被称之为serialization,marshalling,flattening等等
序列化之后,就可以把序列化后的内容写入磁盘,或者通过网络传输到别的机器上。
反过来,把变量内容从序列化的对象重新读到内存里称之为反序列化,即unpickling。
Python提供了pickle模块来实现序列化

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • os模块的基本功能:>>> import os>>> os.name # 操作系统类型'posix'如果是posi...
    牛崽儿酷阅读 169评论 0 0
  • pyton review 学习指南 https://www.zhihu.com/question/29138020...
    孙小二wuk阅读 1,091评论 0 2
  • 一、Python简介和环境搭建以及pip的安装 4课时实验课主要内容 【Python简介】: Python 是一个...
    _小老虎_阅读 5,883评论 0 10
  • 程序代码和运行时数据是存储在内存中的,由CPU来调用执行,涉及到数据交换的地方,通常有磁盘、网络等,这时就需要用到...
    turbotx阅读 849评论 0 0
  • 操场边有几颗枫树 但树叶的颜色并不好看 我想起去年带你去看的黄金大道 那是落叶的海洋 向往的童话天堂 你坐在光洁的...
    要多帅气的昵称呢阅读 135评论 0 0