首页
学习
活动
专区
圈层
工具
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

软件测试笔记|Python编程基础|OS对目录操作

“动动小手,点点关注呗~”

“你知道的——当一个人情绪低落的时候,他会格外喜欢看日落。”——安东尼·德·圣埃克苏佩里《小王子》

在Python编程中,对目录的操作是一项基础且重要的技能。无论是进行文件管理、数据处理还是项目部署,都经常会涉及到目录的创建、删除、遍历等操作。Python的os模块提供了一系列强大的函数来完成这些任务,本文将带你深入探索os模块对目录的各种操作。

一、os模块简介

os模块是Python标准库中与操作系统交互的重要模块,它提供了许多函数用于处理文件和目录,而且这些函数能够在不同操作系统(如Windows、Linux、macOS)上使用,具有良好的跨平台性 。在使用os模块的函数前,需要先导入它:

二、获取当前工作目录

获取当前Python脚本所在的工作目录是一个常见的操作,使用os.getcwd()函数可以轻松实现:

运行结果:

假设脚本在C:\Users\YourUsername\Documents\PythonScripts路径下运行,结果将会是:

代码含义:os.getcwd()函数返回一个字符串,表示当前的工作目录。将其赋值给current_dir变量后,使用print函数输出结果。

三、更改当前工作目录

使用os.chdir(path)函数可以更改当前的工作目录,path参数为要切换到的目标目录路径。例如,切换到系统的根目录(在Windows下是盘符根目录,在Linux和macOS下是/):

运行结果(Windows环境):

代码含义:os.chdir('C:\\')将工作目录切换到C盘根目录,双反斜杠是因为在Python字符串中,反斜杠是转义字符,需要用两个反斜杠表示一个普通的反斜杠。然后再次获取当前工作目录并输出。

四、创建目录

(一)创建单个目录

使用os.mkdir(path)函数可以创建一个新目录,path为要创建的目录路径。例如,在当前工作目录下创建一个名为new_folder的新目录:

运行结果:

代码含义:os.path.join(os.getcwd(), 'new_folder')使用os.path.join函数将当前工作目录和新目录名new_folder拼接成完整的路径,这样可以确保路径在不同操作系统下都能正确表示。os.mkdir根据拼接后的路径创建新目录,最后输出创建成功的提示信息。

(二)创建多级目录

如果要创建的目录包含多级子目录,可以使用os.makedirs(path)函数,它会递归创建所有必要的中间目录。例如,创建parent_folder/child_folder/grandchild_folder这样的三级目录结构:

运行结果:

代码含义:同样使用os.path.join拼接出完整的多级目录路径,os.makedirs函数会根据这个路径创建出整个目录结构,包括中间的parent_folder和child_folder目录。

五、删除目录

(一)删除空目录

使用os.rmdir(path)函数可以删除一个空目录,path为要删除的目录路径。例如,删除前面创建的new_folder目录:

运行结果:

代码含义:先拼接出要删除的目录路径,然后使用os.rmdir函数删除该目录,注意这个函数只能删除空目录,如果目录非空会抛出OSError异常。

(二)删除非空目录

删除非空目录需要使用shutil模块中的rmtree函数,shutil是Python标准库中用于高级文件操作的模块。例如,删除前面创建的包含多级子目录的parent_folder:

运行结果:

代码含义:shutil.rmtree函数会递归删除指定目录及其包含的所有文件和子目录,直接将整个目录结构从文件系统中移除 。

六、遍历目录

(一)简单遍历当前目录下的文件和子目录

使用os.listdir(path)函数可以列出指定目录下的所有文件和子目录,返回一个包含它们名字的列表。如果不传入path参数,则默认列出当前工作目录下的内容。例如:

运行结果(假设当前目录下有file1.txt、file2.py和sub_folder子目录):

代码含义:os.listdir(current_dir)获取当前工作目录下的所有文件和子目录名称列表,然后通过for循环逐个打印出来。

(二)深度遍历目录树

使用os.walk(top)函数可以实现深度优先遍历目录树,top为要遍历的目录路径。os.walk会返回一个三元组(dirpath, dirnames, filenames),其中dirpath是当前遍历到的目录路径,dirnames是该目录下的子目录名称列表,filenames是该目录下的文件名称列表。例如,遍历整个C:\Users\YourUsername目录(注意,实际运行时这个目录下文件众多,这里只是示例):

代码含义:通过for循环迭代os.walk(root_dir)返回的结果,每次迭代中,先打印当前目录路径dirpath,然后分别遍历并打印子目录名称dirnames和文件名称filenames,最后打印30个短横线作为分隔,方便区分不同目录层级的输出。

七、总结

通过os模块,我们可以方便地在Python中进行各种目录操作。从获取和更改工作目录,到创建、删除目录,再到遍历目录树,这些操作在日常编程中非常实用。掌握这些技巧,能够让你更高效地处理文件系统相关的任务,无论是小型脚本还是大型项目开发都能得心应手。希望本文介绍的内容对你的Python编程学习和实践有所帮助,快去动手尝试这些os模块的目录操作函数吧!

“动动小手,点点关注呗~”🫰

  • 发表于:
  • 原文链接https://page.om.qq.com/page/O3p44iSJtXSAj93RzOj1DFdQ0
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券