Python路径操作

Posted alrenn

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python路径操作相关的知识,希望对你有一定的参考价值。

路径操作

path模块

from os import path #os 模块常用函数,os.path模块

p = path.join(/etc/,sysconfig,network) #拼接
print(type(p),p)
print(path.exists(p)) #存在性判断
print(path.split(p)) #分隔

print(path.dirname(p),path.basename(p))#取路径和基名

print(path.abspath(‘‘),path.abspath(.)) #当前的绝对路径
print(* * 30)

#打印父目录 p1
= path.abspath(__file__) #取当前文件名的对地路径 print(p1) while p1 != path.dirname(p1): p1 = path.dirname(p1) print(p1) #输出<class str> /etc/sysconfig/network False (/etc/sysconfig, network) /etc/sysconfig network /home/alren/PycharmProjects/Python /home/alren/PycharmProjects/Python ****************************** /home/alren/PycharmProjects/Python/file-operator.py /home/alren/PycharmProjects/Python /home/alren/PycharmProjects /home/alren /home /

 

Path类

从Python3.4开始提供了pathlib模快,使用Path类操作目录更为的方便

from pathlib import Path #从pathlib模快导入Path类

p1 = Path()
p2 = Path(‘‘)
p3 = Path(.) #Path()/Path(‘‘)/Path(‘.‘)都表示当前目录
print(p1)
print(p2)
print(p3)

p = Path(a,b,c/d) #当前目录下的a/b/c/d
print(p)

p = Path(/etc/,Path(),Path(sysconfig),network/ifconfig) #Path拼接
print(p)

#输出
.
.
.
a/b/c/d
/etc/sysconfig/network/ifconfig

 

路径拼接

操作符/

  Path对象 / Path对象

  Path对象 / 字符串(str)

  字符串 / Path对象

  字符串 / 字符串 #错误表达式

from pathlib import Path

p1 = Path()
p2 = Path(‘‘)
p3 = Path(.)
print(p1)
print(p2)
print(p3)

p = Path(a,b,c/d)
print(p)

p = Path(/etc/,Path(),Path(sysconfig),network/ifconfig)
print(p)


p1 = /a / Path(b,c/d)
print(p1)

p2 = Path(/a,b) / Path(c/d)
print(p2)

p3 = Path(/a/b/c) / d
print(p3)

p4 = /a / (b/c / Path(d)) # ‘/a‘ / ‘b/c‘ / Path(‘d‘) 错误的表达式,str / str 不能使用/进行操作
print(p4)

 

joinpath

  joinpath(*other)在当前的Path路径上连接多个字符串返回新路径对象

from pathlib import Path

p = Path()
p = p / a

p1 = b / p

p2 = Path(c)

p3 = p1 / p2
print(p1,p2,p3,sep=
)

print(p3.joinpath(d,e/f,Path(g/h)))

#输出
b/a
c
b/a/c
b/a/c/d/e/f/g/h

 

分解

parts属性会返回目录各部分的元组

print(p3.parts)  # (‘b‘, ‘a‘, ‘c‘)

 

获取路径

str获取路径字符串

bytes获取路径字符串的bytes

print(str(p3),bytes(p3)) #b/a/c b‘b/a/c‘

 

父目录

parent目录的逻辑父目录

parents父目录惰性可迭代对象,索引0是直接的父目录

p = Path(/data/mysql/data/mysql.tar.gz)
print(p.parent) #返回逻辑的父目录
print(p.parents)#返回一个惰性的可迭代对象

#输出
/data/mysql/data 
<PosixPath.parents>

遍历父目录

from pathlib import Path
p = Path(/data/mysql/data/mysql.tar.gz)
print(p.parent) #
print(p.parents)

for i in p.parents:
    print(i)

from os import path

p1 = path.join(/data/mysql/data/mysql.tar.gz)

while p1 != path.dirname(p1):
    p1 = path.dirname(p1)
    print(p1)

 

以上是关于Python路径操作的主要内容,如果未能解决你的问题,请参考以下文章

iOS xcode 代码片段

[未解决问题记录]python asyncio+aiohttp出现Exception ignored:RuntimeError('Event loop is closed')(代码片段

C++ 代码片段(积累)

常用python日期日志获取内容循环的代码片段

python 有用的Python代码片段

Python 向 Postman 请求代码片段