两个模块中最常用的函数集以及示例 在我们日常的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(datab。csv),PosixPath(datac。sql),PosixPath(dataa。txt)〕 然后可以将该对象进一步用于更多操作,因为它比常规字符串更强大,并且可以直接在对象上使用更多必要的方法和属性。连接路径 将路径对象形成为字符串或PosixPath或WindowsPath对象的过程可以使用两个模块来完成,以确保我们的代码不包含字符串中的或对象。这样,我们的代码就与平台无关了。 在OS模块中,我们可以做:Joinandcreatepathsprint(os。path。join(os。getcwd()),data)OutUsersusernameDesktopPythonStuffprojectnamedata 使用Pathlib,我们有:print(pathlib。PurePath。joinpath(pathlib。Path。cwd(),data))OutUsersusernameDesktopPythonStuffprojectnamedata获取当前工作目录 由于各种原因,例如在我们的项目中设置基目录或其他原因,我们希望在我们的脚本中获取当前工作目录。 使用这两个模块,我们可以这样做:print(os。getcwd(),type(os。getcwd()))OutUsersusernameDesktopPythonStuffprojectnameclassstrprint(pathlib。Path。cwd(),type(pathlib。Path。cwd()))OutUsersusernameDesktopPythonStuffprojectnameclasspathlib。PosixPath 请注意,对于OS和Pathlib模块,返回对象的类型分别是字符串和Path对象。检查路径中是否存在文件 我们可以在OS和Pathlib模块中使用类似的exists()函数来检查文件或目录是否存在。 让我们看看他们的行动:Checkifafileexistsinpathprint(os。path。exists(data))print(pathlib。Path(data)。exists())OutTrueTrue 在这两种情况下,我们都会得到一个关于目录文件是否存在的布尔值True或False。创建目录 使用类似于命令行mkdir函数的函数可以轻松地在Python中创建一个新目录。print(os。makedirs(os。path。join(os。getcwd(),data,newfolder),existokTrue))print(pathlib。Path(pathlib。PurePath。joinpath(pathlib。Path。cwd(),data,newfolder2))。mkdir(existokTrue)) 然后,我们在路径中看到以下创建的文件夹: 删除文件或目录 删除文件是另一种常见的文件操作。使用OS模块,您可以使用os。remove()和os。rmdir()函数分别删除文件或目录。 方法如下:os。remove(data) 在Pathlib中,我们使用unlink()和rmdir()函数来完成:pathlib。Path(a。txt)。unlink()orpathlib。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文档。