Python 踩坑之旅文件系统篇其一文件夹也是个文件
目录
代码示例支持 |
---|
平台: Mac OS |
Python: 2.7.10 |
代码示例: - wx: 菜单 - Python踩坑指南代码示例 - github 见code_demo |
1.1 案例
这期案例讲的是Unix-Like系统中, 常听到的一句话: 目录也是个文件 或者 everything is a file.
刚接触 Linux 文件系统的同学有时候听到这个很懵, 目录怎么是个文件呢?目录不应该是内部包含文件的载体么?
1.2 分析
分析主要从2个方面展开:
ls
实际是使用大量文件系统标准接口实现的结果, 是处理过后的用户程序- 从文件系统的组织结构来看穿数据存储和读写方式
如果大家已习惯了 Linux 系统中 ls
命令 (有时候由于alias
存在, 实际是ls --color
), 容易产生一种错觉:文件夹和文件这不是天然的被区分为不同的类别了吗?
- 比如蓝色的文件夹?
- 黑色的文件?`
实际不是这样子的, ls
mkdir
touch
一类的文件系统操作命令其实是通过调用文件系统接口实现的用户态程序, 你自己利用python也可以实现一个一摸一样的.
我们来看一些使用 python 访问文件系统的简单例子:
from __future__ import print_function import os # 简单文件写 with open('./test', 'w+') as fhandle: fhandle.write('test\n') # 创建文件夹 dirname = os.path.abspath('./test_dir') if not os.path.exists(dirname): os.makedirs(dirname) for ind in range(