os.path模块属性及使用方法实例化

环境:

Python3.7、Pycharm

以下所有实例都由此路径及文件名输出:

/Users/bowyn/Desktop/instance/test_os.path.py

os.path.abspath(path)

  • 返回绝对路径

实例:

import os.path

print(os.path.abspath(__file__))

执行以上程序输出结果为:

/Users/bowyn/Desktop/instance/test_os.path.py

 

os.path.basename(path)

  • 返回文件名

实例:

import os.path

# python os.path.basename(path)返回文件名
path1 = '/Users/bowyn/Desktop/instance/test_os.path.py'
print(os.path.basename(path1))          # 传入path1路径
print(os.path.basename(__file__))       # 利用__file__获取当前文件的绝对路径

__file__作用以及模块导入方法

描述 导入相关的模块属性file(Importrelated module attributes) file直接在目录里面执行结果显示当前文件pycharm里面会给增加一个绝对路径这是

执行以上程序输出结果为:

test_os.path.py
test_os.path.py

os.path.commonprefix(list)

  • 返回list(多个路径)中,所有path共有的最长的路径

实例:

import os.path

# python os.path.commonprefix(list) — 返回list(多个路径)中,所有path共有的最长的路径
list1 = ['/Users', '/Users/bowyn/Desktop/instance', '/Users/bowyn', '/Users/bowyn/Desktop']
print(os.path.commonprefix(list1))

执行以上程序输出结果为:

/Users

os.path.dirname(path)

  • 返回文件路径

实例:

import os.path

# python os.path.dirname(path)返回文件路径
path1 = '/Users/bowyn/Desktop/instance/test_os.path.py'
print(os.path.dirname(path1))       # 传入文件路径
print(os.path.dirname(__file__))    # 利用__file__获取当前文件的绝对路径

执行以上程序输出结果为:

/Users/bowyn/Desktop/instance
/Users/bowyn/Desktop/instance

os.path.exists(path)

  • 如果路径 path 存在,返回 True;如果路径 path 不存在,返回 False。

实例:

import os.path

# python os.path.exists(path)判断文件或文件夹是否存在
path1 = 'test_os.path.py'   # 此文件存在
path2 = 'bowyn.py'          # 此文件不存在
path3 = '/Users/bowyn/Desktop/instance/'    # 此路径存在
path4 = '/Users/bowyn/Desktop/bowyn/'       # 此路径存在
print(os.path.exists(path1))
print(os.path.exists(path2))
print(os.path.exists(path3))
print(os.path.exists(path4))

执行以上程序输出结果为:

True
False
True
False

os.path.lexists

  • 路径存在则返回True,路径损坏也返回True

实例:

import os.path

# python os.path.lexists — 路径存在则返回True,路径损坏也返回
path1 = 'test_os.path.py'   # 此文件存在
path2 = 'bowyn.py'          # 此文件不存在
path3 = '/Users/bowyn/Desktop/instance/'    # 此路径存在
path4 = '/Users/bowyn/Desktop/bowyn/'       # 此路径存在
print(os.path.lexists(path1))
print(os.path.lexists(path2))
print(os.path.lexists(path3))
print(os.path.lexists(path4))

执行以上程序输出结果为:

True
False
True
False

os.path.expanduser(path)

  • 把path中包含的"~"和"~user"转换成用户目录

实例:

import os.path

# python os.path.expanduser(path) — 把path中包含的"~"和"~user"转换成用户目录
path1 = '~/Desktop/bowyn/'  # 路径含"~"
print(os.path.expanduser(path1))

执行以上程序输出结果为:

/Users/bowyn/Desktop/bowyn/

os.path.expandvars(path)

  • 根据环境变量的值替换path中包含的"$name"和"${name}"

实例:

正在不断学习...

执行以上程序输出结果为:

 

 

os.path.getatime(path)

  • 返回最近访问时间(浮点型秒数)
  • 返回值是自epoch时间算起的浮点值,单位为秒
  • 如果path不存在或无法访问将抛出异常

实例:

import os.path

# python os.path.getatime(path) — 返回最近访问时间(浮点型秒数)
path1 = '/Users/bowyn/Desktop/instance/test_os.path.py'
print(os.path.getatime(path1))

执行以上程序输出结果为:

1570722785.7882411

os.path.getmtime(path)

  • 返回最近文件修改时间

实例:

import os.path

# python os.path.getmtime(path) — 返回最近文件修改时间(浮点型秒数)
path1 = '/Users/bowyn/Desktop/instance/test_os.path.py'
print(os.path.getmtime(path1))

执行以上程序输出结果为:

1570722880.8129578

os.path.getctime(path)

  • 返回文件 path 创建时间

实例:

import os.path

# python os.path.getctime(path) — 返回文件 path 创建时间(浮点型秒数)
path1 = '/Users/bowyn/Desktop/instance/test_os.path.py'
print(os.path.getctime(path1))

执行以上程序输出结果为:

1570722948.4330232

os.path.getsize(path)

  • 返回文件大小,如果文件不存在就返回错误

实例:

import os.path

# python os.path.getsize(path) — 返回文件大小,如果文件不存在就返回错误
path1 = '/Users/bowyn/Desktop/instance/test_os.path.py'
print(os.path.getsize(path1))

执行以上程序输出结果为:

195

os.path.isabs(path)

  • 判断是否为绝对路径

实例:

import os.path

# python os.path.isabs(path) — 判断是否为绝对路径
path1 = '/Users/bowyn/Desktop/instance/test_os.path.py'
print(os.path.isabs(path1))

执行以上程序输出结果为:

True

os.path.isfile(path)

  • 判断路径是否为文件

实例:

import os.path

# python os.path.isfile(path) — 判断路径是否为文件
path1 = '/Users/bowyn/Desktop/instance/test_os.path.py'
path2 = '/Users/bowyn/Desktop/instance'
print(os.path.isfile(path1))
print(os.path.isfile(path2))

执行以上程序输出结果为:

True
False

os.path.isdir(path)

  • 判断路径是否为目录

实例:

import os.path

# python os.path.isdir(path) — 判断路径是否为目录
path1 = '/Users/bowyn/Desktop/instance/test_os.path.py'
path2 = '/Users/bowyn/Desktop/instance'
print(os.path.isdir(path1))
print(os.path.isdir(path2))

执行以上程序输出结果为:

False
True

os.path.islink(path)

  • 判断路径是否为链接
  • 判断是否为符号链接,即使是受到破坏的符号链接,也会返回True。
  • 如果Python运行环境不支持符号链接,返回False。

实例:

正在努力学习中...

执行以上程序输出结果为:

正在努力学习中...

 

os.path.ismount(path)

  • 判断路径是否为挂载点

实例:

# 进入终端找到以下挂载点:'/', '/dev', '/private/var/vm', '/net', '/home'
(mxonline) BowyndeMBP:/ bowyn$ df -h
Filesystem      Size   Used  Avail Capacity iused               ifree %iused  Mounted on
/dev/disk1s1   233Gi   71Gi  161Gi    31% 1049675 9223372036853726132    0%   /
devfs          185Ki  185Ki    0Bi   100%     639                   0  100%   /dev
/dev/disk1s4   233Gi  1.0Gi  161Gi     1%       1 9223372036854775806    0%   /private/var/vm
map -hosts       0Bi    0Bi    0Bi   100%       0                   0  100%   /net
map auto_home    0Bi    0Bi    0Bi   100%       0                   0  100%   /home

 

import os.path
# python os.path.ismount(path)  — 判断路径是否为挂载点
path1 = '/'
path2 = '/dev'
path3 = '/private/var/vm'
path4 = '/bowyn'

print(os.path.ismount(path1))
print(os.path.ismount(path2))
print(os.path.ismount(path3))
print(os.path.ismount(path4))

执行以上程序输出结果为:

True
True
True
False

对于Windows系统,磁盘符根目录及UNC路径的共享目录总是挂载点:

实例:

import os.path
# python os.path.ismount(path)  — 判断路径是否为挂载点
path1 = 'c:/'
path2 = '//DESKTOP-BV17H6X/Users/'
print(os.path.ismount(path1)) 
print(os.path.ismount(path2))

执行以上程序输出结果为:

True 
True

os.path.join(path1[, path2[, ...]])

  • 把目录和文件名合成一个路径
  • 路径拼接
  • 将path与paths中的非空路径组件使用系统分隔符拼接
  • 如果最后一个组件是空字符串,返回值将以分隔符结尾

实例:

import os.path

# python os.path.join(path1[, path2[, ...]]) — 把目录和文件名合成一个路径
path1 = '/Users/bowyn/Desktop/instance'
path2 = 'test_os.path.py'
path3 = 'bowyn'
path4 = ''
print(os.path.join(path1, path2))
print(os.path.join(path1, path3, path2))
print(os.path.join(path1, path3, path4))

执行以上程序输出结果为:

/Users/bowyn/Desktop/instance/test_os.path.py
/Users/bowyn/Desktop/instance/bowyn/test_os.path.py
/Users/bowyn/Desktop/instance/bowyn/

如果paths中任意一个组件是绝对路径,将直接以该组件开始进行拼接:

import os.path

# python os.path.join(path1[, path2[, ...]]) — 把目录和文件名合成一个路径
path1 = '/Users/bowyn/Desktop/instance'
path2 = 'etc'
path3 = '/bowyn'
path4 = 'home'
print(os.path.join(path1, path2, path3, path4))

执行以上程序输出结果为:

/bowyn/home

在Windows中,如果paths中出现不含磁盘符的绝对路径,不会重置磁盘符:

import os.path

print(os.path.join('c:/root', '/bowyn'))

执行以上程序输出结果为:

c:/bowyn

如果paths中出现含磁盘符的,直接从该路径开始进行拼接:

import os.path

print(os.path.join('c:/root', 'e:/root', '/bowyn'))

执行以上程序输出结果为:

e:/bowyn

每个磁盘符有一个当前工作目录,下例表示相对于该磁盘当前工作目录的路径foo(e:foo而非e:\\foo):

import os.path

print(os.path.join('e:', 'bowyn'))

执行以上程序输出结果为:

E:\\git_project\\bowyn

os.path.normcase(path)

  • 转换path的大小写和斜杠
  • 规范路径名大小写
  • 在Unix和Mac OS X系统,直接返回path
  • 在大小写不敏感的系统(如Windows),会将path转换为小写字母
  • 此外Windows还会将/转换为\\

实例:

正在努力学习中...

执行以上程序输出结果为:

正在努力学习中...

os.path.normpath(path)

  • 规范path字符串形式
  • 规范路径名中的多余分隔符以及上级引用,如A//B, A/B/, A/./B and A/foo/../B将全部转换为A/B
  • Windows系统还会将/转换为\\

实例:

正在努力学习中...

执行以上程序输出结果为:

正在努力学习中...

os.path.realpath(path)

  • 返回path的真实路径

实例:

import os.path

# python os.path.realpath(path) — 返回path的真实路径
path1 = '/etc/sysconfig/selinux'
print(os.path.realpath(path1))

执行以上程序输出结果为:

/private/etc/sysconfig/selinux

os.path.relpath(path[, start])

  • 从start开始计算相对路径

实例:

import os.path

# python os.path.relpath(path[, start]) — 从start开始计算相对路径
path1 = '/Users/bowyn/Desktop/instance'
print(os.path.relpath(path1))           # 默认当前目录开始 相当于./Users/bowyn/Desktop/instance
print(os.path.relpath(path1, '/Users/bowyn')) # 以'/Users/bowyn'目录开始 返回Desktop/instance

执行以上程序输出结果为:

.
Desktop/instance

os.path.samefile(path1, path2)

  • 判断目录或文件是否相同
  • 判断path1和path2是否指向同一个文件或目录,取决于设备号和i-node。如果调用os.stat()失败将抛出异常。

实例:

import os.path

# python os.path.samefile(path1, path2) — 判断目录或文件是否相同
path1 = '/Users/bowyn/Desktop/instance/test_os.path.py'
path2 = '/Users/bowyn/Desktop/instance/bowyn.py'
print(os.path.samefile(__file__, path1))
print(os.path.samefile(path1, path2))
# print(os.path.samefile(__file__, path2))

执行以上程序输出结果为:

True
Traceback (most recent call last):
File "/Users/bowyn/Desktop/instance/test_os.path.py", line 7, in <module>
print(os.path.samefile(path1, path2))
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/genericpath.py", line 97, in samefile
s2 = os.stat(f2)
FileNotFoundError: [Errno 2] No such file or directory: '/Users/bowyn/Desktop/instance/bowyn.py'

os.path.sameopenfile(fp1, fp2)

  • 判断fp1和fp2是否指向同一文件
  • 判断文件描述符fp1和fp2是否指向同一个文件或目录。

实例:

正在努力学习中...

执行以上程序输出结果为:

正在努力学习中...

os.path.samestat(stat1, stat2)

  • 判断stat tuple stat1和stat2是否指向同一个文件
  • 判断状态元组stat1和stat2是否指向同一个文件或目录,参数可能是os.fstat()os.lstatos.stat()的返回值。

实例:

正在努力学习中...

执行以上程序输出结果为:

正在努力学习中...

os.path.split(path)

  • 把路径分割成 dirname 和 basename,返回一个元组

实例:

import os.path

# python os.path.split(path) — 把路径分割成 dirname 和 basename,返回一个元组
path1 = '/Users/bowyn/Desktop/instance/test_os.path.py'
print(os.path.split(path1))
print(os.path.split(__file__))

执行以上程序输出结果为:

('/Users/bowyn/Desktop/instance', 'test_os.path.py')
('/Users/bowyn/Desktop/instance', 'test_os.path.py')

os.path.splitdrive(path)

  • 一般用在 windows 下,返回驱动器名和路径组成的元组

实例:

import os.path

# python os.path.splitdrive(path) 一般用在 windows 下,返回驱动器名和路径组成的元组
path1 = '/Users/bowyn/Desktop/instance/test_os.path.py'     # MAC系统路径
path2 = 'c:\\windows\\bowyn\\instance\\test_os.path.py'     # Windows系统路径
print(os.path.splitdrive(path1))
print(os.path.splitdrive(path2))

执行以上程序输出结果为:

('', '/Users/bowyn/Desktop/instance/test_os.path.py')
('C:', '\\Windows\\bowyn\\instance\\test_os.path.py')

os.path.splitext(path)

  • 分割路径,返回路径名和文件扩展名的元组

实例:

import os.path

# python os.path.splitext(path) — 分割路径,返回路径名和文件扩展名的元组
path1 = '/Users/bowyn/Desktop/instance/test_os.path.py'
print(os.path.splitext(__file__))   # 分割当前文件的路径
print(os.path.splitext(path1))

执行以上程序输出结果为:

('/Users/bowyn/Desktop/instance/test_os.path', '.py')
('/Users/bowyn/Desktop/instance/test_os.path', '.py')

os.path.splitunc(path)

  • 把路径分割为加载点与文件

实例:

# python os.path.splitunc(path) — 把路径分割为加载点与文件

正在努力学习中...

执行以上程序输出结果为:

正在努力学习中...

os.path.walk(path, visit, arg)

  • os.path.walk(path, visit, arg)— 遍历path,进入每个目录都调用visit函数,visit函数必须有3个参数(arg, dirname, names),dirname表示当前目录的目录名,names代表当前目录下的所有文件名,args则为walk的第三个参数

实例:

正在努力学习中...

执行以上程序输出结果为:

正在努力学习中...

os.path.supports_unicode_filenames

  • 设置是否支持unicode路径名
  • 判断是否能使用任意Unicode字符串作为文件名(在文件系统强加的限制内)

实例:

正在努力学习中...

执行以上程序输出结果为:

正在努力学习中...

 

人已赞赏
0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧