Python处理文件系统Os和Shutil

在编写一些Python程序的时候,我们常常需要与文件系统进行交互。本文为大家整理了10个常用的相关命令,涉及查看信息、更改信息、删除文件等,并提供了相应的终端命令,帮助大家更高效地对文件系统及其中的文件内容进行操作。

在这里插入图片描述

通过一个能够实现与文件系统进行交互的Python程序,我们可以实现很多有趣的应用,但是大部分人并不知道如何实现这种交互。

os模块主要用于与操作系统交互,shutil模块则包含一些针对文件的操作。一般情况下,我们使用os创建目录,使用shutil移动和复制文件。

一、获取信息(Get Info)

  • os.getcwd():以字符串形式获取当前工作目录路径 → pwd
  • os.listdir() :以字符串列表的形式获取当前工作目录的内容→ls
  • os.walk(“starting_directory_path”):返回一个生成器(generator),该生成器包含当前目录和所有子目录中的文件名称及路径信息;→没有完全等价的shell命令,不过ls -R 命令提供了子目录名称和子目录中的文件名称

在这里插入图片描述

二、更改信息(Change Things)

  • os.chdir("/absolute/or/relative/path"):更改当前的工作路径→ cd

  • os.path.join():创建路径供后续使用→ 没有等效的命令

  • os.makedirs(“dir1 / dir2”):创建目录→ mkdir - p

  • shutil.copy2(“source_file_path”,“destination_directory_path”):复制文件或目录→ cp

  • shutil.move(“source_file_path”,“destination_directory_path”):移动文件或目录→ mv

  • os.remove(“my_file_path”):删除文件→ rm

  • shutil.rmtree(“my_directory_path”):删除路径及其包含的所有文件和目录→ rm –rf

以上是对十个最常用、基础的文件系统方法的初步介绍,接下来我们再深入讲解一些重要的模块和使用方法。

以字符串列表形式返回当前目录

	os.walk("my_start_directory")

创建一个生成器,用于返回关于当前目录和子目录的信息。在起始指定的目录中有效。

os.walk() 遍历包含的每个目录后,都会返回下列项:

(1)当前目录路径(字符串类型)

(2)当前目录下的子目录名称(字符串列表类型)

(3)当前目录中的文件名称(字符串列表类型的)

os.walk

使用带有for循环的os.walk()来遍历目录及其子目录的内容通常很有用。例如,下面的代码将打印当前工作目录的目录和子目录中的所有文件。

import os	
cwd = os.getcwd()	
for dir_path, dir_names, file_names in os.walk(cwd):	
    for f in file_names:	
        print(f)
以上是获取信息的操作。下面让我们一起看一下更改工作目录或移动、复制、删除文件系统的命令。

以上是获取信息的操作。下面让我们一起看一下更改工作目录或移动、复制、删除文件系统的命令。

os.chdir("/absolute/or/relative/path")

此方法将当前工作路径更改为绝对路径或相对路径。

如果随后要对文件系统进行其他更改,在试用该方法时留意处理任何异常。否则,您可能正在删除不希望删除的目录或文件。

os.path.join()

os.path.join()

os.path模块提供了许多用于路径名操作的有用方法。您可以使用它查找有关目录名称,或者目录名称的部分信息。该模块还可以用来检查文件或目录是否存在。

os.path.join()
提供将多个字符串完美连接在一起的文件路径,而且是在大多数操作系统上都可以工作的路径。该模块文档的描述为,该命令可以“更加智能的连接一个或多个路径组件,返回值是路径或路径的任何成员路径的连接,每个非空路径后都有一个目录分隔符(os.sep),最后一个除外”。

另外,如果使用的是Unix或macOS系统,os.path.join()会在每个字符串之间添加一个斜杠(" / ")来创建路径。如果操作系统需要“\”,那么join会自动使用反斜杠。

os.path.join()还向其他开发人员提供了创建路径的明确信息。强烈建议读者多使用这个命令,不要每次都手动添加斜杠。

在这里插入图片描述

os.makedirs("dir1/dir2")

os.makedirs()能够生成目录。mkdir()方法也可以生成目录,但它不生成中间目录。所以建议使用os.makedirs()。

shutil.copy2("source_file", "destination")

在Python中复制文件和目录的方法有很多,但建议使用此命令。shutil.copy2()的优势在于,它尽可能地保留了源文件的元数据。

使用shutil.move()更改文件的位置。它使用 copy2 作为后台参数默认值。

shutil.move("source_file", "destination")

当需要删除文件时,可以使用os.remove()工具。

os.remove("my_file_path")

shutil.rmtree() 删除一个目录及其中的所有文件和目录。 慎用!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

考古学家lx(李玺)

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值