最详细的python os操作(汇总版)

1 os.path

1.1 os.path.expanduser()

函数作用:把path中包含的'~''~user'转换成用户目录。
在Linux系统中,你可以方便地使用'~' 来代替路径'/home/user_name',但是python是不认识'~'的,如果你写路径的时候直接写'~/balabala',程序是跑不动的,所以如果你要用'~',你就应该用这个os.path.expanduser('~')'~'展开。

print(os.path.expanduser('~'))
print(os.path.expanduser('~/balabala'))
print(os.path.expanduser('./balabala'))  # 该函数只对'~'起作用

运行结果:

# abcd2474是我的用户名
'/home3/abcd2474'
'/home3/abcd2474/balabala'
'./balabala'

注:在Windom系统中,os.path.expanduser('~')输出'C:\Users\user_name'

1.2 os.path.abspath()

函数作用:返回绝对路径。

print(os.path.abspath('.'))  # 当前目录的绝对路径
print(os.path.abspath('./'))  # 同上
print(os.path.abspath(''))  # 同上

print(os.path.abspath('..'))  # 上一级目录的绝对路径
print(os.path.abspath('../'))  # 同上

print(os.path.abspath('./balabala'))  # 该路径对应的绝对路径
print(os.path.abspath('balabala'))  # 同上

print(os.path.abspath(__file__))  # 返回程序所在文件的绝对路径

运行结果:

# 程序在/home3/abcd2474/pyproject/my_raw_code/my_test/test1.py中
'/home3/abcd2474/pyproject/my_raw_code/my_test'
'/home3/abcd2474/pyproject/my_raw_code/my_test'
'/home3/abcd2474/pyproject/my_raw_code/my_test'

'/home3/abcd2474/pyproject/my_raw_code'
'/home3/abcd2474/pyproject/my_raw_code'

'/home3/abcd2474/pyproject/my_raw_code/my_test/balabala'
'/home3/abcd2474/pyproject/my_raw_code/my_test/balabala'

'/home3/abcd2474/pyproject/my_raw_code/my_test/test1.py'

组合技1os.path.expanduser()os.path.abspath()经常组合起来用。

path = os.path.abspath(os.path.expanduser(path))

1.3 os.path.basename()

函数作用:返回文件名,即返回路径中最底层的文件名(文件或文件夹的名字),由于是最底层,所以称为其为basename
:路径的组成形式为:“dirname/basename”,即“文件路径/文件名”。

print(os.path.basename('./dir1/dir2/dir3/file.jpg'))
print(os.path.basename('./dir1/dir2/dir3'))
print(os.path.basename('./dir1/dir2'))
print(os.path.basename('./dir1'))

运行结果:

'file.jpg'
'dir3'
'dir2'
'dir1'

1.4 os.path.dirname()

函数作用:返回文件路径,即路径中的dirname。

print(os.path.dirname('./dir1/dir2/dir3/file.jpg'))
print(os.path.dirname('./dir1/dir2/dir3'))
print(os.path.dirname('./dir1/dir2'))
print(os.path.dirname('./dir1'))

运行结果:

'./dir1/dir2/dir3'
'./dir1/dir2'
'./dir1'
'.'

1.5 os.path.split()

函数作用:把路径分割成 dirname 和 basename,并返回一个元组。

print(os.path.split('./dir1/dir2/dir3/file.jpg'))
print(os.path.split('./dir1/dir2/dir3'))
print(os.path.split('./dir1/dir2'))
print(os.path.split('./dir1'))

运行结果:

('./dir1/dir2/dir3', 'file.jpg')
('./dir1/dir2', 'dir3')
('./dir1', 'dir2')
('.', 'dir1')

于是乎:

  • os.path.split(path)[0] == os.path.dirname(path)
  • os.path.split(path)[1] == os.path.basename(path)

1.6 os.path.splitext()

函数作用:分割路径,返回路径名和文件扩展名的元组。

print(os.path.splitext('./dir1/dir2/dir3/file.jpg'))
print(os.path.splitext('./dir1/dir2/dir3'))
print(os.path.splitext('./dir1/dir2'))
print(os.path.splitext('./dir1'))

运行结果:

('./dir1/dir2/dir3/file', '.jpg')
('./dir1/dir2/dir3', '')
('./dir1/dir2', '')
('./dir1', '')

1.7 路径判断函数

  • os.path.isfile(path):判断路径path是否为文件。
  • os.path.isdir(path):判断路径path是否为目。
  • os.path.isabs(path):判断路径path是否为绝对路径。
  • os.path.islink(path):判断路径path是否为链接。
  • os.path.ismount(path):判断路径path是否为挂载点。
  • os.path.exists(path):判断路径path是否存在。

持续更新中。。。。

[1]: Python os.path() 模块.

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值