更多精彩内容,请关注微信公众号:python学习开发。
前言
大多人处理文件用的最多的还是os模快吧,比如下面这样的操作
>>> path.rsplit('', maxsplit=1)[0]
或者写出下面这样长长的代码
>>> os.path.isfile(os.path.join(os.path.expanduser('~'), 'realpython.txt'))
在本教程中,你将了解如何使用pathlib模块操作目录和文件的名称。 学习如何读取和写入文件,拼接路径和操作底层文件系统的新方法,以及如何列出文件并迭代它们的一些示例。 使用pathlib模块,可以使代码使用优雅,可读和Pythonic代码重写上面的两个示例,如:
>>> path.parent
>>> (pathlib.Path.home() / 'realpython.txt').is_file()
Python文件路径处理问题
由于许多不同的原因,使用文件和与文件系统交互很重要。 最简单的情况可能只涉及读取或写入文件,但有时候会有更复杂的任务。 也许你需要列出给定类型的目录中的所有文件,查找给定文件的父目录,或者创建一个尚不存在的唯一文件名。
一般情况,Python使用常规文本字符串表示文件路径。 一般在使用os,glob和shutil等库的时候会使用到路径拼接的操作,使用os模块拼接起来显得略显复杂,以下示例仅需要三个import语句来将所有文本文件移动到归档目录:
import glob
import os
import shutil
for file_name in glob.glob('*.txt'):
new_path = os.path.join('archive', file_name)
shutil.move(file_name, new_path)
使用常规的字符串去拼接路径是可以的,但是由于不同的操作系统使用的分隔符不同,这样就容易出现问题,所以一般我们使用最多的还是使用os.path.join()。
Python 3.4中引入了pathlib模块(PEP 428)再一次的优化了路径的拼接。使用pathlib库的Path方法,可以将一个普通的字符串转换为pathlib.Path对象类型的路径。
早期,其他软件包仍然使用字符串作为文件路径,但从Python 3.6开始,pathlib模块在整个标准库中得到支持,部分原因是由于增加了文件系统路径协议。 如果你坚持使用传统的Python,那么Python 2也有一个可用的向后移植。
ok,说了那么多下面让我们看看pathlib如何在实践中发挥作用。
创建路径
这里我们首先要知道两个用法,先看代码:
你真正需要知道的是pathlib.Path类。 创建路径有几种不同的方式。 首先,有类方法,如.cwd(当前工作目录)和.h