Python 文件路径相关处理库

101 阅读3分钟

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]]):递归地将一个目录树复制到另一个位置。

image.png

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__)

参考