分享

Python 文件路径

 菜籽爱编程 2022-04-27

获取主目录

提到文件路径问题,不得不先提一下不同操作系统上文件夹之间的分隔符。在 Windows 操作系统上,路径的写法采用的是 \ 反斜杠。而在 macOS 和 Linux 操作系统上,路径的写法采用的是 / 正斜杠。作为一门跨平台的语言, Python 必须处理上述路径表示的不同。好在使用 pathlib 模块的 Path() 函数处理路径问题很简单。下面的例子演示了在 Windows 系统下获取主目录的例子。

>>> from pathlib import Path>>> Path.home()WindowsPath('C:/Users/Caizi')

通过调用 Path.home() 可以获得主文件夹的 Path 对象。同样,下面的例子演示了在 Ubuntu 下获取主目录。

>>> from pathlib import Path>>> Path.home()PosixPath('/home/caizi')

由此可以看出,在 Python 中路径的写法都采用 / 正斜杠,最后 Python 再由当前运行的系统对路径进行解析。



路径之间的连接

多个文件夹字符串之间可以直接采用 Path() 连接,也可以使用 / 进行连接。下面的例子演示了在 Ubuntu 下连接路径的几种做法。

>>> from pathlib import Path>>> Path('caizi', 'python', 'day10')PosixPath('caizi/python/day10')>>> >>> listFiles = ['a.txt', 'b.cocx']>>> for file in listFiles:...     print(Path(r'/caizi/python', file))... /caizi/python/a.txt/caizi/python/b.cocx>>> >>> Path('caizi') / 'day10'PosixPath('caizi/day10')>>> Path('caizi') / Path('day10', 'path')PosixPath('caizi/day10/path')

注意,在使用 / 进行路径连接时,前两个值中有一个必须是 Path 对象。



获取当前目录

使用 Path.cwd() 方法可以获取当前工作目录。

>>> from pathlib import Path>>> Path.cwd()PosixPath('/home/caizi')


修改当前目录

使用 os.chdir() 方法可以改变当前工作目录。注意使用前要导入 os 模块。

>>> from pathlib import Path>>> import os>>> Path.cwd()PosixPath('/home/caizi')>>> os.chdir('/etc')>>> Path.cwd()PosixPath('/etc')


查看文件夹内容

使用 os.listdir() 方法可以查看当前路径下所有文件。

>>> import os>>> os.listdir()['.cache', 'Music', 'Pictures', ...]


创建文件夹

使用 os.makedirs() 方法可以创建新的文件夹,即所谓的目录,采用此方法可以创建子目录。当然也可以使用 Path 对象的 mkdir() 方法,但是此方法只能创建一个目录,不能创建多级子目录。

>>> import os>>> os.makedirs('/home/caizi/pythondir')>>> os.listdir()['.cache', 'pythondir', 'Music', 'Pictures', ...]


判断路径是绝对路径还是相对路径

使用 Path 对象的 is_absolute() 方法,可以判断路径是绝对路径还是相对路径。

>>> from pathlib import Path>>> Path('/home/caizi').is_absolute()True>>> Path('python/day10').is_absolute()False


获取路径的各部分属性

在不同的操作系统中,路径的属性有所不同。在 Windows 操作系统中,路径 C:\Users\Caizi\python.py 分为以下几个部分:

1. drive:驱动,即 C:

2. anchor:锚点,也就是文件系统的根目录,即 C:\\

3. parent:父文件夹,即 C:\\Users\\Caizi

4. name:文件名,包括文件的名称(stem)以及扩展名(suffix),即 python.py

在 Linux 操作系统中,除了没有 drive 属性其他属性都与 Windows 操作系统一样。下面的例子演示了如何在 Windows 操作系统下获取路径各部分属性。

>>> from pathlib import Path>>> path = Path('C:/Users/Caizi/python.py')>>> path.drive'C:'>>> path.anchor'C:\\'>>> path.parentWindowsPath('C:/Users/Caizi')>>> path.name'python.py'>>> path.stem'python'>>> path.suffix'.py'


获取文件大小

使用 os.path 模块的 getsize() 方法可以获取指定文件的大小,以字节为单位返回。

>>> import os>>> os.path.getsize('C:/Users/Caizi/python.py')318


检查路径是否有效

在 Python 中, Path 对象有一些检查路径或文件是否存在的方法。

1. exists():当路径存在时,返回 True 。

2. is_dir():当路径存在且有此文件时,返回 True 。

3. is_file():当路径存在其为文件夹时,返回 True 。

>>> from pathlib import Path>>> path = Path('C:/Users/Caizi')>>> path.exists()True>>> path = Path('C:/Users/Caizi/python.py')>>> path.is_file()True>>> path.is_dir()False

更多内容请点击

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多