Python 中使用 OS 和 Pathlib 模块的 7 个常见文件操作

两个模块中最常用的函数集以及示例


在我们日常的 Python 项目中,我们经常最终使用一种或多种方法来执行各种操作,如读取、列出、命名以及创建文件和目录,这两个内置模块 OS 和 Pathlib 可以派上用场。

在本文中,我详细介绍了您可以在 Python 中使用 OS 和 Pathlib 模块执行的一些常见且非常有用的文件操作,并展示了它们返回的对象类型,同时指出了它们的一些异同。

出发吧

列出目录内容

OS 和 Pathlib 都包含可以列出目录中包含的所有文件的函数。

使用 os 模块,可以使用 listdir() 函数来完成:

print(os.listdir('data'))

在这种情况下,我们获得了当前路径中“data”文件夹中包含的文件名字符串列表,如下所示:

['b.csv', 'c.sql', 'a.txt']

对于 pathlib 模块,我们使用 iterdir() 函数,它返回一个生成器对象,因此可以将 list() 函数应用于结果以获取所有项目:

print(list(pathlib.Path('data').iterdir()))

在这种情况下,表示路径的实际返回对象取决于底层操作系统。

我们在 Linux 和 MacOS 上获得了一个 PosixPath 对象,在 Windows 上获得了一个 WindowsPath 对象,而不是常规的字符串对象。

[PosixPath('data/b.csv'), PosixPath('data/c.sql'), PosixPath('data/a.txt')]

然后可以将该对象进一步用于更多操作,因为它比常规字符串更强大,并且可以直接在对象上使用更多必要的方法和属性。

连接路径

将路径对象形成为字符串或 PosixPath 或 WindowsPath 对象的过程可以使用两个模块来完成,以确保我们的代码不包含字符串中的“/”或“”对象。 这样,我们的代码就与平台无关了。

在 OS 模块中,我们可以做:

# Join and create paths
print(os.path.join(os.getcwd()), 'data')

#Out
/Users/username/Desktop/PythonStuff/projectname/data

使用 Pathlib,我们有:

print(pathlib.PurePath.joinpath(pathlib.Path.cwd(), 'data'))

#Out
/Users/username/Desktop/PythonStuff/projectname/data

获取当前工作目录

由于各种原因,例如在我们的项目中设置基目录或其他原因,我们希望在我们的脚本中获取当前工作目录。

使用这两个模块,我们可以这样做:

print(os.getcwd(), type(os.getcwd()))

#Out
/Users/username/Desktop/PythonStuff/projectname/ 
print(pathlib.Path.cwd(), type(pathlib.Path.cwd()))

#Out
/Users/username/Desktop/PythonStuff/projectname/ 

请注意,对于 OS 和 Pathlib 模块,返回对象的类型分别是字符串和 Path 对象。

检查路径中是否存在文件

我们可以在 OS 和 Pathlib 模块中使用类似的 exists() 函数来检查文件或目录是否存在。

让我们看看他们的行动:

# Check if a file exists in path
print(os.path.exists('data'))
print(pathlib.Path('data').exists())

#Out
True
True

在这两种情况下,我们都会得到一个关于目录/文件是否存在的布尔值 True 或 False。

创建目录

使用类似于命令行“mkdir”函数的函数可以轻松地在 Python 中创建一个新目录。

print(os.makedirs(os.path.join(os.getcwd(), 'data', 'new_folder'), exist_ok=True))
print(pathlib.Path(pathlib.PurePath.joinpath(pathlib.Path.cwd(), 'data', 'new_folder_2')).mkdir(exist_ok=True))

然后,我们在路径中看到以下创建的文件夹:


删除文件或目录

删除文件是另一种常见的文件操作。 使用 OS 模块,您可以使用 os.remove() 和 os.rmdir() 函数分别删除文件或目录。

方法如下:

os.remove("data")

在 Pathlib 中,我们使用 unlink() 和 rmdir() 函数来完成:

pathlib.Path("a.txt").unlink()

#or

pathlib.Path("data").rmdir()

重命名文件

使用 os.rename() 函数可以轻松地对文件执行重命名,如下所示:

os.rename('a.txt', 'b.txt')

使用 Pathlib 模块,很容易做到这一点:

pathlib.Path('a.txt').rename('b.txt')

同样,这两个在 OS 模块的情况下简单地返回 None,在 Pathlib 的情况下从操作返回 Path 对象。

一些临别的话

这些只是您可以在 Python 中使用 OS 和 Pathlib 模块执行的 6 种最常见的文件操作。 了解如何使用这些模块可以使 Python 中的文件/路径操作变得更加容易。

如果您正在寻找有关文件操作的更多信息,请务必查看 OS 和 Pathlib 模块的官方 Python 文档。

展开阅读全文

页面更新:2024-04-22

标签:模块   操作   文件   字符串   路径   函数   常规   对象   常见   目录   项目

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号

Top