Python其实很简单 第十六章 目录管理 为实现“按名存取”,必须建立文件名与辅存空间中物理地址的对应关系,体现这种对应关系的数据结构称为文件目录 。文件目录表目至少要包含文件名、文件的类型、文件的长度、访问权限、建立时间、访问时间和文件存储地址等内容 。通过前面一章的介绍 , 我们已经知道在文件信息中已经包含了文件名、文件类型访问权限等信息,而存储地址的信息则包含在目录信息中 。
16.1路径
路径通常用一个字符串来表示 , 可以按照路径信息定位到一个目录或文件 。如:“C:UsersAdministratorPictures1.jpg”这个信息可以非常方便的找到这个图片文件,“C:UsersAdministratorPictures”这个信息可以帮助我们找到更多的图片文件 。
这里所说的“路径”和上网时碰到的“地址”含义比较相似,互联网就相当于将个人电脑可以访问的范围扩大了,互联网中的地址也是对应某一个存储空间的路径,按照地址可以访问互联网上的信息,就如同按照路径可以找到计算机中的文件一样 。
在Python中,可以导入 os模块 来进行目录操作 。
1、获取当前工作目录getcwd()函数
例:
import os
print(os.getcwd())
运行结果:
C:UsersAdministratorAppDataLocalProgramsPythonPython38
这个路径是当前Python IDLE所在的地址 。
2、获取文件的绝对路径abspath()函数
abspath()函数是os模块的子模块path提供的一个函数 。用法举例如下:
import os
print(os.path.abspath(r'test.txt'))
运行结果:
C:UsersAdministratorAppDataLocalProgramsPythonPython38 est.txt
16.2 目录操作类函数
1、判断目录是否存在exists()函数
exists()函数是os模块的子模块path中的函数 。使用方法举例如下:
import os
print(os.path.exists(r'C:UsersAdministratorPictures1.jpeg'))
输出结果:
True
2、创建目录mkdir()函数和makedirs()函数
mkdir()函数和makedirs()函数都是由os模块提供的,下面举例说明用法和区别 。
例1:
import os
path='d:test'
if not os.path.exists(path):
os.makedirs(path)
print('该文件目录创建成功!')
如果目录d: est已存在 , 则不再创建;若不存在,则创建 。
例2:
import os
path='d:testtest1test11'
if not os.path.exists(path):
os.makedirs(path)
print('该文件目录创建成功!')
虽然目录d: est已存在,但可以在其下继续创建子目录 。上面的代码可以成功地创建d: est est1 est11目录 。
mkdir()函数和makedirs()函数用法基本一样 , 不同之处在于mkdir()函数只能能创建一级目录 。
3、删除目录函数rmdir()函数
rmdir()函数是由os模块提供的 。
例如:通过上面的例子已经建立了d: est est1 est11目录,现在去删除子目录test11(此子目录为空目录),代码如下:
import os
os.rmdir('d:testtest1test11')
如果要删除的目录非空(其下还包含有文件或文件夹) , 则不能删除,并且出现Windows文件操作错误的提示(Python是调用操作系统命令完成文件和目录操作的) 。譬如d: est目录下含有有子目录 , 则不能对其进行如下删除操作 。
import os
os.rmdir('d:test')
此时,会出现如下错误提示:
Traceback (most recent call last):
File "C:/Users/zym/AppData/Local/Programs/Python/Python39/4.py", line 10, in
os.rmdir('d:test')
OSError: [WinError 145] 目录不是空的 。: 'd:test'
4、删除非空目录函数rmtree()函数
rmtree()函数是由Python内置的标准模块shutil提供的 , 可以删除目录及目录下的文件和子目录 。如删除d: est目录及其下的子目录和文件,可用如下代码:
推荐阅读
- 多米手机怎么截图,多米手机怎么截图图片
- jquery3.2.1库乱码,jquery代码
- 玩什么需要超频的CPU,玩什么需要超频的CPU
- 苹果电脑虚拟化什么意思,苹果电脑虚拟化什么意思呀
- mysql怎么做读写分离 mysql读写分离amoeba
- c语言rand函数的使用例子,c语言rand函数
- redis服务架构怎么搭建,redis的搭建
- 模拟人生连接不上服务器,模拟人生畅玩版无法连接
- 视频号如何加入小店,视频号怎么添加小店