首页 > 编程语言 >Python之文件系统操作(pathlib)

Python之文件系统操作(pathlib)

时间:2023-02-01 17:58:37浏览次数:44  
标签:workspace Python demo py pathlib 文件系统 file print cp

"""
    文件相关操作(pathlib)
    date:2023-01-29
"""
from pathlib import Path

# 获取当前工作目录
print(Path.cwd())  # D:\workspace\py\python_demo\root\demo\study_demo\file_demo

p = Path(Path.cwd())  # 实例化
p = p / "pathlib_demo.py"  # 组装文件路径
print(p)  # D:\workspace\py\python_demo\root\demo\study_demo\file_demo\pathlib_demo.py

print(p.is_dir())  # False
print(p.is_file())  # True
print(p.exists())  # True
print(p.name)  # 文件名包含后缀 pathlib_demo.py
print(p.stem)  # 文件名不包含后缀 pathlib_demo
print(p.suffix)  # 后缀名 .py
print(p.parent)  # 父级目录 D:\workspace\py\python_demo\root\demo\study_demo\file_demo
print(p.parents)  # 父级目录序列对象,可通过索引值访问 <WindowsPath.parents>
for pp in p.parents:
    print(pp)
"""
D:\workspace\py\python_demo\root\demo\study_demo\file_demo
D:\workspace\py\python_demo\root\demo\study_demo
D:\workspace\py\python_demo\root\demo
D:\workspace\py\python_demo\root
D:\workspace\py\python_demo
D:\workspace\py
D:\workspace
D:\
"""

print(p.stat())  # 文件状态
print(p.stat().st_size)  # 文件大小(字节)

cp = Path(".")  # 当前路径
Path("..")  # 父级路径

print(cp.iterdir())  # <generator object Path.iterdir at 0x000001A170595F90>
for pp in cp.iterdir():
    """输出当前目录下所有文件和文件夹"""
    print(pp)

# 创建目录
cp = Path()
cp = cp / "dir"
cp.mkdir(parents=True, exist_ok=True)  # 新建目录,自动创建父级目录、目录已存在不报错

# 创建文件
cp = cp / "file.txt"
f = cp.open("w")
f.writelines("hello")
f.close()

# 修改文件名称
cp_new = cp.parent / "file_new.txt"
cp.rename(cp_new)  # file.txt -> file_new.txt

# 删除文件
cp_new.unlink()
# 删除目录
cp_new.parent.rmdir()

# 查找文件
p = Path()
print(list(p.glob("*.py")))  # 搜索当前目录下所有py后缀的文件
print(list(p.glob("**/*.py")))  # 搜索当前目录及其子目录下所有后缀py的文件
l = [x.name for x in p.glob("*.py") if x.is_file() & x.name.startswith("file")]  # 列表推导式查询指定文件的名称
print(l)  # ['file_demo.py']

 

标签:workspace,Python,demo,py,pathlib,文件系统,file,print,cp
From: https://www.cnblogs.com/gongxr/p/17083697.html

相关文章

  • Python之异常处理
    """异常处理包括异常捕获、抛异常和assertdate:2023-01-29"""#捕获异常try:1/0exceptZeroDivisionErrorase:print(e)#divisionbyzer......
  • [oeasy]python0068_ 字体样式_正常_加亮_变暗_控制序列
    字体样式回忆上次内容上次了解了一个新的转义模式\33逃逸控制字符escesc让输出退出标准输出流进行控制信息的设置可以清屏也可以设置光标输出的位置......
  • linux 操作系统升级 Python 3
    #进入python官网下载对应版本,比如:Python-3.7.12[root@localhost~]#wget​​https://www.python.org/ftp/python/3.7.12/Python-3.7.12.tgz​​#安装依赖包[root@localh......
  • Python 变量
    本篇笔记介绍Python变量的相关知识,包括Python变量的组成部分、变量名的命名规范和常用的变量类型。回忆一道数学题,假设x=1y=2如果z=x+y那么,z的值......
  • [oeasy]python0068_ 字体样式_正常_加亮_变暗_控制序列
    字体样式回忆上次内容上次了解了一个新的转义模式\33逃逸控制字符escesc让输出退出标准输出流进行控制信息的设置可以清屏也可以设置光标输出的位置还能做什么呢?可......
  • python处理apiDoc转swagger
    python处理apiDoc转swagger需要转换的接口现在我需要转换的接口全是nodejs写的数据,而且均为post传输的json格式接口apiDoc格式apiDoc代码中的格式如下:/***@api{......
  • python 利用backtrader 和 akshare 做股票回测
    python版本设置在3.8ImportError:cannotimportname'warnings'from'matplotlib.dates'报上面的错降级matplotlibpipuninstallmatplotlibpipinstallmatplo......
  • python tcp socket 源码分享
    服务端的源码:importsocketserverclassHandler_TCPServer(socketserver.BaseRequestHandler):"""TheTCPServerclassfordemonstration.Note:We......
  • Python服务进程管理工具supervisor使用记录
    [本文出自天外归云的博客园]学习资料supervisor文档:http://supervisord.org/running.html踩坑总结问题1:提示找不到一些包含/tmp的路径需要修改supervisord.conf配置文......
  • Python操作MongoDB
    虽然经常使用mongodb,但是很多方法都是现用现查,难得有时间,简单整理一下:一、连接mongodb安装第三方库:pipinstallpymongo连接到mongodb服务器:importpymongo#ho......