Python 中与文件路径有关的模块是 os 模块

路径获取

  • 取得当前工作目录:os.getcwd()
  • 取得绝对路径:os.path.abspath(str)#str 表示文件名
  • 取得相对路径:os.path.relpath(path,start)#传回从 start 到 path 的相对路径,省略则会传回当前工作目录到 path 的相对路径

路径检查

  • exist(path):检查 path 是否存在
  • isabs(path):检查是否是绝对路径
  • isdir(path):检查是否是文件夹
  • isfile(path):检查是否是文件

针对文件的操作

  • mkdir(path):建立 path 文件夹
  • rmdir(path):删除 path 文件夹,但必须是空的文件夹
  • remove(path):删除 path 文件
  • chdir(path):将当前工作文件夹改至 path。
#在D盘创建文件夹,在文件夹内创建若干个文件
from genericpath import exists
import os
from time import sleep
file_path="D:\\file_test"
if os.path.exists(file_path):
print("The file_test has been existed")
else:
os.mkdir(file_path)
print("%s has been made"%file_path)
stra="/存储python代码的第"
strb="个文件夹"
for i in range(10):
#路径的连接也可以使用os.path.join()
os.mkdir(file_path+stra+str(i)+strb)
os.mkdir(file_path+stra+str(i)+strb+".txt")
sleep(360)
for i in range(10):
os.rmdir(file_path+stra+str(i)+strb)
os.rmdir(file_path+stra+str(i)+strb+".txt")


获取特定文件夹的内容 os.listdir()

可以使用 listdir 获取文件夹的内容,更常用的一种获取方式是用 glob。

使用 glob 列出匹配文件

glob()函数会使用 Unix shell 的规则来匹配文件或者目录,而不是更复杂的正则表达式。
具体规则如下所示:

  • *:匹配任意字符
  • ?:匹配一个字符
  • [!abc]:匹配 a,b,c 以外的所有字符

使用通配符"",即".txt"获得所有 txt 扩展名的文件,"ch*.*"列出所有 ch 开头的文件
image.png

遍历文件树 os.walk()

os.walk()与 os.listdir()相似,不过前者可以得到子文件夹的具体情况,os.walk()返回值有三个:

  • 当前文件夹名称(dirName)
  • 子文件夹列表(sub_dirNames)
  • 文件列表(fileNames)
import os
for dirName,sub_dirName,fileName in os.walk("D:\OneDrive - stu.xjtu.edu.cn\lm\文档\可待"):
print("当前文件夹:",dirName)
print("子文件夹名称:",sub_dirName)
print("文件名称:",fileName)

文件/文件夹的复制粘贴

os 模块可以用于文件或者文件夹的新建,至于对文件夹或者文件的相关操作,shutil 模块提供了问价和文件夹的复制移动和删除等操作。

文件的复制

文件的复制主要利用 copy 函数:
shutil.copy(soucetpath,destinationpath)
copytree 与上述函数相似,主要用于对文件夹的复制

文件的移动(重命名)

文件的移动借助 move 函数,与 copy 函数的输入参数类似。在移动过程中如果发现目标位置中已有相同的文件名,那么该操作还可以实现文件名的更改。

文件或者文件夹的删除

该模块下的 rmtree()可以帮助我们删除已有的文件夹(包括其中的子文件),但是需要注意的是这种删除是彻底的,不会放入回收站。若要将其放入回收站,可以借助 send2trash.send2trash()函数。
文件的删除要借助 os.remove()函数.