5.11 文件路径�的�作¶

问题¶

你需�使用路径��获�文件�,目录�,�对路径等等。

解决方案¶

使用 os.path 模�中的函数��作路径�。 下�是一个交互�例��演示一些关键的特性:

>>> import os
>>> path = '/Users/beazley/Data/data.csv'

>>> # Get the last component of the path
>>> os.path.basename(path)
'data.csv'

>>> # Get the directory name
>>> os.path.dirname(path)
'/Users/beazley/Data'

>>> # Join path components together
>>> os.path.join('tmp', 'data', os.path.basename(path))
'tmp/data/data.csv'

>>> # Expand the user's home directory
>>> path = '~/Data/data.csv'
>>> os.path.expanduser(path)
'/Users/beazley/Data/data.csv'

>>> # Split the file extension
>>> os.path.splitext(path)
('~/Data/data', '.csv')
>>>

讨论¶

对于任何的文件�的�作,你都应该使用 os.path 模�,而�是使用标准字符串�作�构造自己的代�。 特别是为了�移�性考虑的时候更应如此, 因为 os.path 模�知�Unix和Windows系统之间的差异并且能够��地处�类似 Data/data.csv 和 Data\data.csv 这样的文件�。 其次,你真的�应该浪费时间去��造轮�。通常最好是直接使用已�为你准备好的功能。

�注�的是 os.path 还有更多的功能在这里并没有列举出�。 �以查阅官方文档�获�更多与文件测试,符�链接等相关的函数说明。