网站首页 > 基础教程 正文
为实现“按名存取”,必须建立文件名与辅存空间中物理地址的对应关系,体现这种对应关系的数据结构称为文件目录。文件目录表目至少要包含文件名、文件的类型、文件的长度、访问权限、建立时间、访问时间和文件存储地址等内容。通过前面一章的介绍,我们已经知道在文件信息中已经包含了文件名、文件类型访问权限等信息,而存储地址的信息则包含在目录信息中。
16.1路径
路径通常用一个字符串来表示,可以按照路径信息定位到一个目录或文件。如:“C:\Users\Administrator\Pictures\1.jpg”这个信息可以非常方便的找到这个图片文件,“C:\Users\Administrator\Pictures”这个信息可以帮助我们找到更多的图片文件。
这里所说的“路径”和上网时碰到的“地址”含义比较相似,互联网就相当于将个人电脑可以访问的范围扩大了,互联网中的地址也是对应某一个存储空间的路径,按照地址可以访问互联网上的信息,就如同按照路径可以找到计算机中的文件一样。
在Python中,可以导入os模块来进行目录操作。
1、获取当前工作目录getcwd()函数
例:
import os
print(os.getcwd())
运行结果:
C:\Users\Administrator\AppData\Local\Programs\Python\Python38
这个路径是当前Python IDLE所在的地址。
2、获取文件的绝对路径abspath()函数
abspath()函数是os模块的子模块path提供的一个函数。用法举例如下:
import os
print(os.path.abspath(r'test.txt'))
运行结果:
C:\Users\Administrator\AppData\Local\Programs\Python\Python38\test.txt
16.2 目录操作类函数
1、判断目录是否存在exists()函数
exists()函数是os模块的子模块path中的函数。使用方法举例如下:
import os
print(os.path.exists(r'C:\Users\Administrator\Pictures\1.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:\test已存在,则不再创建;若不存在,则创建。
例2:
import os
path='d:\\test\\test1\\test11'
if not os.path.exists(path):
os.makedirs(path)
print('该文件目录创建成功!')
虽然目录d:\test已存在,但可以在其下继续创建子目录。上面的代码可以成功地创建d:\test\test1\test11目录。
mkdir()函数和makedirs()函数用法基本一样,不同之处在于mkdir()函数只能能创建一级目录。
3、删除目录函数rmdir()函数
rmdir()函数是由os模块提供的。
例如:通过上面的例子已经建立了d:\test\test1\test11目录,现在去删除子目录test11(此子目录为空目录),代码如下:
import os
os.rmdir('d:\\test\\test1\\test11')
如果要删除的目录非空(其下还包含有文件或文件夹),则不能删除,并且出现Windows文件操作错误的提示(Python是调用操作系统命令完成文件和目录操作的)。譬如d:\test目录下含有有子目录,则不能对其进行如下删除操作。
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 <module>
os.rmdir('d:\\test')
OSError: [WinError 145] 目录不是空的。: 'd:\\test'
4、删除非空目录函数rmtree()函数
rmtree()函数是由Python内置的标准模块shutil提供的,可以删除目录及目录下的文件和子目录。如删除d:\test目录及其下的子目录和文件,可用如下代码:
import shutil
shutil.rmtree('d:\\test')
5、遍历目录walk()函数
walk()函数是由os模块提供的。
语法格式:
os.walk(top[, topdown=True[, onerror=None[, followlinks=False]]])
其中,top是所要遍历的目录的地址;topdown为可选参数,为 True时自上而下遍历 目录,为False时自下而上遍历目录,默认值为True;onerror为可选参数,用于指定异常处理方式,默认为忽略;followlinks为可选参数,如果为 True,则会遍历目录下的快捷方式(linux 下是软连接 symbolic link )实际所指的目录(默认关闭),如果为 False,则优先遍历 top 的子目录。
该函数的返回值为一个三元组(root,dirs,files)。root 所指的是当前正在遍历的这个文件夹的本身的地址;dirs 是一个 list ,内容是该文件夹中所有的目录的名字(不包括子目录);files 同样是 list , 内容是该文件夹中所有的文件(不包括子目录)。
例:遍历d:\test目录及其子目录下的所有子目录和文件:
d:\test目录及其下的子目录和文件
import os
path='d:\\test'
tups=os.walk(path) # 函数walk()的返回值为三元组
for root,dirs,files in tups: # 遍历这个三元组
for name in dirs: #遍历存放目录值的元组
print('dir:',os.path.join(root,name))
for name in files: #遍历存放文件名值的元组
print('file:',os.path.join(root,name))
运行结果如下:
dir: d:\test\test1
dir: d:\test\test1\test11
dir: d:\test\test1\新建文件夹
file: d:\test\test1\新建文本文档.txt
file: d:\test\test1\test11\新建文本文档.txt
猜你喜欢
- 2024-12-25 「万能Python」-15-文件处理 python 处理文件
- 2024-12-25 分享10个Python自动化脚本,解决日常问题
- 2024-12-25 Python 3 基础教程 - 文件 I/O python3.7文档
- 2024-12-25 最全Python基础知识总结 python基础100例
- 2024-12-25 Linux日常小技巧python脚本 python写linux脚本
- 2024-12-25 字符串跳舞,保姆级教程,利用python实现小姐姐跳代码舞
- 2024-12-25 Linux命令学习——rmdir命令 rm linux命令
- 2024-12-25 CMake个人理解和使用 cmake -wl
- 2024-12-25 Python文件系统:让你的文件操作变得更简单
- 2024-12-25 高效开发利器:深入学习Python标准库的实用技巧
- 05-24php实现三方支付的方法有哪些?
- 05-24CosmicSting 漏洞影响 75% 的 Adobe Commerce 和 Magento 网站
- 05-24Java接口默认方法的奇妙用途
- 05-24抽象类和接口
- 05-24详解Java抽象类和接口
- 05-24拒绝接口裸奔!开放API接口签名验证
- 05-24每天学Java!Java中的接口有什么作用
- 05-24Java:在Java中使用私有接口方法
- 最近发表
- 标签列表
-
- jsp (69)
- gitpush (78)
- gitreset (66)
- python字典 (67)
- dockercp (63)
- gitclone命令 (63)
- dockersave (62)
- linux命令大全 (65)
- pythonif (86)
- location.href (69)
- dockerexec (65)
- tail-f (79)
- deletesql (62)
- c++模板 (62)
- linuxgzip (68)
- 字符串连接 (73)
- nginx配置文件详解 (61)
- html标签 (69)
- c++初始化列表 (64)
- mysqlinnodbmyisam区别 (63)
- arraylistadd (66)
- console.table (62)
- mysqldatesub函数 (63)
- window10java环境变量设置 (66)
- c++虚函数和纯虚函数的区别 (66)