Logo

郎哥编程

目录与文件操作

2020-12-29 152

我们在电脑上管理自己的文件会用到目录的概念,打开电脑就会看到在电脑的磁盘中有很多的目录,目录下面有文件和子目录。这些目录实际上是帮我们对文件进行分类管理。我们可以把一些与工作相关的文件放到工作目录里,把一些与私人相关的文件放到私人目录中,当然还有其它更多的文件分类管理方式。

目录及文件路径

在电脑中可以创建新的目录,也可以修改原有目录的名称或删除目录,不过删除目录时需要谨慎,防止误删除重要的文件。这些目录的操作都是通过程序来完成的,这个程序就是电脑中的资源管理器。

用Python语言也可以编写一个资源管理器程序,Python提供了有关文件目录操作的一些方法,这些方法可以帮助我们编写电脑的资源管理器程序。

下面逐步介绍这些方法,首先介绍如何在电脑中创建和删除目录,然后再介绍如何修改目录名称。后面的文章会介绍如何遍历目录和文件。当我们掌握了这些操作目录的方法后,就可以使用Python语言编写资源管理器程序了。

在电脑中创建一个新的目录,需要指定目录路径,目录路径是指从磁盘盘符到新目录所在位置的路径。例如,如果要在D盘盘符下创建一个名称为“document”的目录,则目录路径为“d:\ document”,其中字母“d”是目录所在的盘符号,“document”是目录名称,“\”为分隔各级目录的符号,需要注意的是分隔符号在Windows操作系统下是“\”,在Linux操作系统下是“/”。

文件路径是指从盘符开始到文件所在存储位置的路径,包括目录路径和文件名称,

os.path模块实现了目录及文件路径操作功能,os.path模块提供了下面的函数来操作路径:

12.PNG

案例代码:

# 导入os.path模块
import os.path as path
 
# 定义目录路径
path_dir = "d:\pub"
# 定义目录路径
path_file = "d:\pub\sample.txt"
 
# 判断path_dir是否是目录
print(path.isdir(path_dir))
# 判断path_file是否是文件
print(path.isfile(path_file))
# 判断path_file是否存在
print(path.exists(path_file))
# 获取path_file大小
print(path.getsize(path_file))
# 拆分path_file
print(path.split(path_file))
# 拆分path_dir
print(path.split(path_dir))
# 拆分path_file的目录
print(path.dirname(path_file))


OS模块操作目录与文件的方法

Python操作目录的方法包含在OS模块中,在代码中需要导入OS模块。OS模块有关目录的方法见下表。

13.PNG

案例1:使用mkdir创建目录

使用mkdir方法创建一个新的目录,目录路径为“d:/pubdocument”,该方法执行完成后,将在d盘盘符下创建pubdocument目录,如果d盘不存在或pubdocument目录已存在,该方法执行失败。

#创建目录样例文件
#导入OS模块
import os
#path为要创建目录的目录路径
path = "d:/pubdocument"
#调用OS模块的mkdir方法创建目录
os.mkdir(path)

案例1使用mkdir方法创建的目录路径为绝对路径,mkdir方法也可以使用相对路径来创建目录。绝对路径是从磁盘盘符开始的路径,相对路径是从程序当前工作目录开始的路径。例如当前程序的工作目录是“d:/pub”,创建的目录路径是“docment”,则实际创建的目录路径为“d:/pub/ docment”。

案例2:使用相对路径创建目录

在例2中使用OS模块的chdir方法将程序的工作目录设置为“d:/pub”,待创建的目录路径为“document”,当程序执行完毕,程序会在d盘pub目录下创建document目录。

#创建目录样例文件
#导入OS模块
import os
#path为要创建目录的目录路径
path = "document"
#调用OS模块的chdir方法修改程序工作目录
os.chdir("d:/pub");
#调用OS模块的mkdir方法创建目录
os.mkdir(path)

例1和例2使用的mkdir方法只能创建单个目录,当目录路径存在多级目录时,如果前面的多级目录不存在,则会创建失败。使用makedirs方法可以创建多级目录。例如需创建的目录路径为“d:/pub/document”,如果pub目录不存在,mkdir会创建目录失败,而makedirs方法会先创建pub目录,然后再创建document目录。

案例3:使用makedirs方法创建多级目录

案例3使用makedirs方法创建多级目录,创建的目录路径为“d:/pub/document”,makedirs方法执行之前pub目录和document都不存在。

#创建目录样例文件
#导入OS模块
import os
#path为要创建目录的目录路径
path = "d:/pub/document"
#调用OS模块的makedirs方法创建多级目录
os.makedirs(path)

当目录不再需要或用户删除目录时,我们可以使用rmdir方法来删除指定的目录,删除目录时需要慎重,因为该目录下的所有文件都会被删除。

案例4:使用rmdir方法删除目录

例4使用rmdir方法删除指定的目录,删除的目录路径为“d:/pub/document”,在执行rmdir方法删除document目录之前,需要确保document目录是存在的。

#删除目录样例文件
#导入OS模块
import os
#path为要删除目录的目录路径
path = "d:/pub/document"
#调用OS模块的rmdir方法删除目录
os.rmdir(path)

当用户需要修改已有目录的名称时,可以使用rename方法来修改已有的目录名称,rename方法要求传入两个参数,第一个参数是需要修改目录名称的目录路径,第二个参数是修改后的目录路径。

例5:使用rename方法修改目录名称

案例5使用rename方法修改document目录的名称,名称修改为doc。其中src是需要修改的目录路径,dst是修改后的目录路径。

#修改目录名称样例文件
#导入OS模块
import os
#src为要修改的目录路径
src = "d:/pub/document"
#dst为修改后的目录路径
dst = "d:/pub/doc"
#调用OS模块的rename方法创建目录
os.rename(src,dst)

案例6:使用remove方法删除文件

remove方法用于删除文件,如果删除的文件不存在,会引发FileNotFoundError异常。

#导入OS模块
import os
# 删除document目录下的sample.txt
src = "d:/pub/doc/sample.txt"
try:
  #调用OS模块的remover方法删除文件
  os.remove(src)
except FileNotFoundError as e:
  print(repr(e))

 

代码在线纠错(通义千问 qwen-max)

支持粘贴多个代码文件,提交后由阿里云通义千问自动分析代码漏洞、语法错误、逻辑问题并给出修改建议。
您已解锁 AI 代码纠错功能,可正常使用!

评论区

登录 后发表评论
暂无评论