[Python进阶] 文件相关库:os、pathlib、shutil

6.12 文件相关:os、pathlib、shutil

6.12.1 复制文件

import shutil

shutil.copy('shutil.txt', 'shutil_copy.txt')
shutil.copyfile('shutil.txt', 'shutil_copyfile.txt')

6.12.2 删除文件

from pathlib import Path
import os

path = Path('pathlib.txt')
path.unlink()
os.unlink('os.txt')  # 等同于os.remove
os.remove('os2.txt')  # 等同于os.unlink

6.12.3 返回文件属性

from pathlib import Path
import os

path = Path('pathlib.txt')
ic(path.stat())
ic(os.stat('os.txt'))

22:04:37|> path.stat(): os.stat_result(st_mode=33206, st_ino=8444249301385627, st_dev=1276890178, st_nlink=1, st_uid=0, st_gid=0, st_size=14, st_atime=1693749587, st_mtime=1676623456, st_ctime=1693749580)
22:04:37|> os.stat(‘os.txt’): os.stat_result(st_mode=33206, st_ino=7881299347964156, st_dev=1276890178, st_nlink=1, st_uid=0, st_gid=0, st_size=14, st_atime=1693749587, st_mtime=1676623456, st_ctime=1693749580)

6.12.4 返回文件大小

from icecream import ic
import os

ic(os.path.getsize('os.txt'))  # 单位:字节

22:06:25|> os.path.getsize(‘os.txt’): 14

6.12.5 文件匹配

匹配符号说明:
*:任意多个字符
?:任意单个字符

匹配单个文件:

from pathlib import Path

path = Path('pathlib.txt')
ic(path.match('*?t'))
ic(path.match('*?t?'))
ic(path.match('*.txt'))

22:27:46|> path.match(‘?t’): True
22:27:46|> path.match('
?t?’): False
22:27:46|> path.match(‘*.txt’): True

匹配整个目录里的文件和文件夹

from pathlib import Path

path = Path('.')
ic(list(path.glob('p*')))

22:33:44|> list(path.glob(‘p*’)): [WindowsPath(‘pathlib.txt’),
WindowsPath(‘Personal’),
WindowsPath(‘Project’)]

递归匹配目录中所有文件和文件夹

from pathlib import Path

path = Path(r'G:\TCL')
ic(list(path.rglob('*t*')))

22:36:36|> list(path.rglob(‘t’)): [WindowsPath(‘G:/TCL/os.txt’),
WindowsPath(‘G:/TCL/pathlib.txt’),
WindowsPath(‘G:/TCL/shutil.txt’),
WindowsPath(‘G:/TCL/Temp’),
WindowsPath(‘G:/TCL/Logs/log.txt’),
WindowsPath(‘G:/TCL/Logs/log.txt.lnk’),
WindowsPath(‘G:/TCL/Logs/loglink.txt’)]

你可能感兴趣的:(Python进阶,#,六,系统及相关操作,python,Python进阶,windows)