Python对文件的处理库
os模块
- os.mkdir(path):创建目录。
- os.rmdir(path):删除空目录。
- os.makedirs(path, mode=0o777):递归创建目录。
- os.removedirs(path):递归删除空目录。
- os.listdir(directory):列出指定目录下的所有文件和子目录名。
- os.rename(src, dst):重命名或移动文件/目录。
- os.remove(path) 或 os.unlink(path):删除文件。
- os.path 子模块提供了一系列路径操作函数,如:
- os.path.exists(path):检查路径是否存在。
- os.path.isfile(path):判断是否为文件。
- os.path.isdir(path):判断是否为目录。
- os.path.join(a, b):连接两个路径名部件。
- os.path.abspath(path):获取绝对路径。 更多其他用于分割、规范化路径等方法。
os.walk
特别介绍一个os.walk方法,可以在目录树中进行游走遍历。
os.walk(top[, topdown=True[, onerror=None[, followlinks=False]]])
-
top -- 是你所要遍历的目录的地址, 返回的是一个三元组(root,dirs,files)。
- root 所指的是当前正在遍历的这个文件夹的本身的地址
- dirs 是一个 list ,内容是该文件夹中所有的目录的名字(不包括子目录)
- files 同样是 list , 内容是该文件夹中所有的文件(不包括子目录)
-
topdown --可选,为 True,则优先遍历 top 目录,否则优先遍历 top 的子目录(默认为开启)。如果 topdown 参数为 True,walk 会遍历top文件夹,与top 文件夹中每一个子目录。
-
onerror -- 可选,需要一个 callable 对象,当 walk 需要异常时,会调用。
-
followlinks -- 可选,如果为 True,则会遍历目录下的快捷方式(linux 下是软连接 symbolic link )实际所指的目录(默认关闭),如果为 False,则优先遍历 top 的子目录。
#!/usr/bin/python
# -*- coding: UTF-8 -*-
import os
for root, dirs, files in os.walk(".", topdown=False):
for name in files:
print(os.path.join(root, name)) # 这是文件的路径
for name in dirs:
print(os.path.join(root, name)) # 这是文件夹的路径
获取当前路径
import os
print os.getcwd() #获取当前工作目录路径
print os.path.abspath('.') #获取当前文件目录路径
print os.path.abspath('test.txt') #获取当前目录文件下的文件目录路径
print os.path.abspath('..') #获取当前文件目录的父目录 !注意是父目录路径
print os.path.abspath(os.curdir) #获取当前文件目录路径
shutil 模块
- shutil.copyfile(src, dst):复制文件内容(不复制元数据)。
- shutil.copy(src, dst):复制文件或目录(可以处理元数据)。
- shutil.move(src, dst):移动文件或目录。
- shutil.rmtree(path):递归删除目录及其包含的所有文件。
- shutil.copytree(src, dst[, symlinks=False[, ignore=None]]):递归地将一个目录树复制到另一个位置。
pathlib库
Path 类提供了面向对象的方式来处理路径,例如:
- Path().mkdir(mode=0o777, parents=False, exist_ok=False):创建目录。
- Path().unlink() 或 Path().remove():删除文件或符号链接。
- Path().exists():检查路径是否存在。
- Path().is_file() 和 Path().is_dir():判断路径指向的是文件还是目录。
- Path().glob(pattern):返回匹配给定shell glob模式的绝对路径的迭代器。 更多其他方法,如读写文件、重命名、替换内容等。
与路径相关的Python特殊变量
file
当前执行文件的路径
cached
对应pycache文件的位置
name
执行当前文件的时候,等于__main__;否则不等于;一般在主文件里写
package
模块所在package
可以用如下的代码去打印特殊变量,查看其值。
print(__file__)
print(__package__)
print(__name__)