网站首页 > 基础教程 正文
两个模块中最常用的函数集以及示例
在我们日常的 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/ <class 'str'>
print(pathlib.Path.cwd(), type(pathlib.Path.cwd()))
#Out
/Users/username/Desktop/PythonStuff/projectname/ <class 'pathlib.PosixPath'>
请注意,对于 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-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标准库的实用技巧
- 最近发表
- 标签列表
-
- gitpush (61)
- pythonif (68)
- location.href (57)
- tail-f (57)
- pythonifelse (59)
- deletesql (62)
- c++模板 (62)
- css3动画 (57)
- c#event (59)
- linuxgzip (68)
- 字符串连接 (73)
- nginx配置文件详解 (61)
- html标签 (69)
- c++初始化列表 (64)
- exec命令 (59)
- canvasfilltext (58)
- mysqlinnodbmyisam区别 (63)
- arraylistadd (66)
- node教程 (59)
- console.table (62)
- c++time_t (58)
- phpcookie (58)
- mysqldatesub函数 (63)
- window10java环境变量设置 (66)
- c++虚函数和纯虚函数的区别 (66)