# OS
[https://docs.python.org/3/library/os.html](https://docs.python.org/3/library/os.html)
* [walk](https://docs.python.org/3/library/os.html#os.walk)
第一个参数是目录, 后面是目录下的目录名和文件名
```
~/g/python-reference/test/组目录 $ tree
.
└── 父目录
├── 父文件1
└── 目录
├── 叶子文件1
└── 叶子文件2
('.', ['父目录'], [])
('./父目录', ['目录'], ['父文件1'])
('./父目录/目录', [], ['叶子文件2', '叶子文件1'])
```
## 基础
```python
os.getcwd() # 获取当前目录
os.path.abspath('.')
os.path.isdir("") # 是否是目录
os.chdir('Pictures') # 切换目录
os.listdir() # 遍历文件
import shutil
shutil.rmtree('') # 删除目录
```
* [ ] os.chroot(path)
* os.fchdir(fd)
等于`os.chdir`
* os.getcwd()
返回当前工作目录: `'/home/wangx/github/python-reference'`
* os.getcwdb()
返回当前工作目录的二进制: `b'/home/wangx/github/duishang_design/\xe7\xbd\x91\xe9\xa1\xb5'`
* os.listdir(path=".")
Return a list containing the names of the entries in the directory given by path.
* os.scandir(path=".")
Better performance than os.listdir
```
filter(lambda x: x.is_dir(), os.scandir()) # show all the directory entry
```
## os.path
[官网](https://docs.python.org/3/library/os.path.html)
* os.path.abspath
* [ ] `os.path.dirname`
* `os.path.exists`
返回是否存在这个文件或者目录
* [ ] `os.path.lexists`
* `os.path.isfile`:
Return True if path is an existing regular file. This follows symbolic links, so both islink() and isfile() can be true for the same path.