Python
pathlib基本操作

0
708

import os
import os.path
import pathlib
建立pathlib对象
root = pathlib.Path(r'D:\Temp')
root
WindowsPath('D:/Temp')
建立文件
txt = root.joinpath('readme.txt')
txt
WindowsPath('D:/Temp/readme.txt')
txt = root / 'readme.txt'
txt
WindowsPath('D:/Temp/readme.txt')
判断是否是目录
root.is_dir()
True
判断是否为文件
txt.is_file()
True
py = root / "demo.py"
py.exists()
False
当前目录
pathlib.Path.cwd()
WindowsPath('D:/study/python/notebook/basic')
pathlib.Path()
WindowsPath('.')
当前用户所在的目录
pathlib.Path.home()
WindowsPath('C:/Users/电脑')
py
WindowsPath('D:/Temp/demo.py')
目录分解
py.parts
('D:\\', 'Temp', 'demo.py')
获取文件后缀名
py.suffix
'.py'
获取文件名称,不带后缀名
py.stem
'demo'
获取带后缀名的文件名称
py.name
'demo.py'
文件的上一级目录
py.parent
WindowsPath('D:/Temp')
py.parent.parent
WindowsPath('D:/')
遍历文件的每上一级目录
for p in py.parents:
print(p)
D:\Temp
D:\
txt
WindowsPath('D:/Temp/readme.txt')
文件的属性,访问时间,创建时间等
txt.stat
<bound method Path.stat of WindowsPath('D:/Temp/readme.txt')>
info = txt.stat()
info
os.stat_result(st_mode=33206, st_ino=34621422135414527, st_dev=1626648111, st_nlink=1, st_uid=0, st_gid=0, st_size=0, st_atime=1678979882, st_mtime=1678979882, st_ctime=1678979882)
文件大小
info.st_size
0
文件的创建时间
info.st_ctime
1678979882.7585118
import time
time.ctime(info.st_ctime)
'Thu Mar 16 23:18:02 2023'
文件的访问时间
time.ctime(info.st_atime)
'Thu Mar 16 23:18:02 2023'
root
WindowsPath('D:/Temp')
code = root / "code"
code.exists()
False
code.mkdir()
创建文件
py
WindowsPath('D:/Temp/demo.py')
py.touch()
note = root / "note.txt"
note.touch()
写文件
note.write_text("hello note")
10
读取文件内容
note.read_text()
'hello note'
root
WindowsPath('D:/Temp')
遍历当前目录下的所有目录和文件,不包含子目录和子目录的文件
for x in root.iterdir():
print(x)
D:\Temp\demo.py
D:\Temp\dir
D:\Temp\note.txt
d = root / "dir"
d
WindowsPath('D:/Temp/dir')
d.glob("*.txt")
<generator object Path.glob at 0x000001A92CA053C0>
查找文件
for f in d.glob("*.txt"):
print(f)
D:\Temp\dir\file1.txt
D:\Temp\dir\file2.txt
D:\Temp\dir\file3.txt
D:\Temp\dir\file4.txt
递归查找文件
for f in d.rglob("*.txt"):
print(f)
D:\Temp\dir\file1.txt
D:\Temp\dir\file2.txt
D:\Temp\dir\file3.txt
D:\Temp\dir\filea.txt
D:\Temp\dir\fileB.txt
D:\Temp\dir\subdir\filea.txt
D:\Temp\dir\subdir\fileb.txt
D:\Temp\dir\subdir\subfiel1.txt
D:\Temp\dir\subdir\subfiel2.txt
利用正则表达式查找文件
for f in d.rglob("file[a-z].txt"):
print(f)
D:\Temp\dir\subdir\filea.txt
D:\Temp\dir\subdir\fileb.txt
for f in d.rglob("file[0-9].txt"):
print(f)
D:\Temp\dir\file1.txt
D:\Temp\dir\file2.txt
D:\Temp\dir\file3.txt
D:\Temp\dir\file4.txt
code
WindowsPath('D:/Temp/code')
删除目录
code.rmdir()
删除文件
txt
WindowsPath('D:/Temp/readme.txt')
txt.unlink()
txt
WindowsPath('D:/Temp/readme.txt')
文件的绝对路径
txt.resolve()
WindowsPath('D:/Temp/readme.txt')
修改文件名和文件扩展名
from pathlib import Path
file1 = Path(r"d:\temp\file_test1.txt")
file1.touch()
fil1_rename = file1.with_name("file_rename.txt")
file_suffix = file1.with_suffix(".ini")
fil1_rename
WindowsPath('d:/temp/file_rename.txt')
file_suffix
WindowsPath('d:/temp/file_test1.ini')
标签:
phthon

上一篇
Python的高阶函数
下一篇
python的函数定义


广州 天气
阴
28 °C