pathlib~更优雅地操作路径~

3天干完6个月的活,Claude把模型搬上AMD 一条挺刺激的消息:Anthropic 给投资人的材料里有一张幻灯片,写着它的 Claude Mythos Preview 只花了大约​,就摸清了怎么让另一个 Claude 模型在 AMD 的 MI355X 上跑起来。同一处还写了个对照数字:过去给一块新芯片做推理适配,通常要几十名工程师、​。3 天对 6 个月,这个比值太扎眼,当天中文互联网上就冒出一堆「英伟达的护城河塌了」的说法。我把能翻到的材料都翻了一遍,越看越觉得,塌掉的那一小块是真的,可塌的位置和很多人想的不一样。 阅读详情

最近在做图像相关的算法,经常有对文件路径的一些条件遍历操作,发现最好使的还是下面这行神奇代码。

from pathlib import Path
imgs = [str(x) for x in Path('./dataset/images/').rglob('*.jp*g') if 'checkpoint' not in str(x)]

这行代码主要使用的是pathlib库,相比于传统的os模块的函数式文件操作,使用pathlib模块来操作文件系统更加简单,可读性更强。

pathlib库的核心类是pathlib.Path,所有功能都可以通过调用这个类的属性和方法进行实现,非常的面向对象。

公众号算法美食屋后台回复关键词:pathlib,获取本文jupyter notebook 源代码

一,Path构造

from pathlib import Path
#指定路径
mypath = Path('../demo.py')
print(mypath)
../demo.py
#当前路径
cwd = Path.cwd() 
print(str(cwd))
/Users/liangyun2/CodeFiles/machine_learning_AK47/1_Feature_Engineering
#home路径
home = Path.home() 
print(str(home))
/Users/liangyun2

二,Path属性

mypath = Path.cwd()
mypath.name  #文件名
'1_Feature_Engineering'
mypath.suffix  #后缀
''
mypath.parent #
PosixPath('/Users/liangyun2/CodeFiles/machine_learning_AK47')
list(mypath.parents)
[PosixPath('/Users/liangyun2/CodeFiles/machine_learning_AK47'),
 PosixPath('/Users/liangyun2/CodeFiles'),
 PosixPath('/Users/liangyun2'),
 PosixPath('/Users'),
 PosixPath('/')]

三,Path遍历

mypath = Path.cwd().parent
file = mypath/'1_Feature_Engineering'/'demo.py'
print(file)
/Users/liangyun2/CodeFiles/machine_learning_AK47/1_Feature_Engineering/demo.py
file.exists()
True
for sub in mypath.iterdir():
    print(sub)
/Users/liangyun2/CodeFiles/machine_learning_AK47/.DS_Store
/Users/liangyun2/CodeFiles/machine_learning_AK47/3_Tune_Tools
/Users/liangyun2/CodeFiles/machine_learning_AK47/6_CV
/Users/liangyun2/CodeFiles/machine_learning_AK47/8_RL
/Users/liangyun2/CodeFiles/machine_learning_AK47/README.ipynb
/Users/liangyun2/CodeFiles/machine_learning_AK47/utils
/Users/liangyun2/CodeFiles/machine_learning_AK47/models
/Users/liangyun2/CodeFiles/machine_learning_AK47/2_Base_Models
/Users/liangyun2/CodeFiles/machine_learning_AK47/push_to_github.ipynb
/Users/liangyun2/CodeFiles/machine_learning_AK47/.gitignore
/Users/liangyun2/CodeFiles/machine_learning_AK47/.ipynb_checkpoints
/Users/liangyun2/CodeFiles/machine_learning_AK47/1_Feature_Engineering
/Users/liangyun2/CodeFiles/machine_learning_AK47/.git
/Users/liangyun2/CodeFiles/machine_learning_AK47/data
/Users/liangyun2/CodeFiles/machine_learning_AK47/7_NLP
/Users/liangyun2/CodeFiles/machine_learning_AK47/5_Integrated_Examples
/Users/liangyun2/CodeFiles/machine_learning_AK47/4_Ensemble_Tools
for sub in mypath.glob('*'):
    print(sub)
/Users/liangyun2/CodeFiles/machine_learning_AK47/.DS_Store
/Users/liangyun2/CodeFiles/machine_learning_AK47/3_Tune_Tools
/Users/liangyun2/CodeFiles/machine_learning_AK47/6_CV
/Users/liangyun2/CodeFiles/machine_learning_AK47/8_RL
/Users/liangyun2/CodeFiles/machine_learning_AK47/README.ipynb
/Users/liangyun2/CodeFiles/machine_learning_AK47/utils
/Users/liangyun2/CodeFiles/machine_learning_AK47/models
/Users/liangyun2/CodeFiles/machine_learning_AK47/2_Base_Models
/Users/liangyun2/CodeFiles/machine_learning_AK47/push_to_github.ipynb
/Users/liangyun2/CodeFiles/machine_learning_AK47/.gitignore
/Users/liangyun2/CodeFiles/machine_learning_AK47/.ipynb_checkpoints
/Users/liangyun2/CodeFiles/machine_learning_AK47/1_Feature_Engineering
/Users/liangyun2/CodeFiles/machine_learning_AK47/.git
/Users/liangyun2/CodeFiles/machine_learning_AK47/data
/Users/liangyun2/CodeFiles/machine_learning_AK47/7_NLP
/Users/liangyun2/CodeFiles/machine_learning_AK47/5_Integrated_Examples
/Users/liangyun2/CodeFiles/machine_learning_AK47/4_Ensemble_Tools
for sub in mypath.glob('*.ipynb'):
    print(sub)
/Users/liangyun2/CodeFiles/machine_learning_AK47/README.ipynb
/Users/liangyun2/CodeFiles/machine_learning_AK47/push_to_github.ipynb
files = [x for x in mypath.rglob('*') if x.is_file()]
len(files)
9670

四,Path操作

path = Path.cwd()/'test.txt'

if not path.exists():
    path.touch() #创建文件
    
#读写内容
path.write_text("hello world!\n你好,中国!\n")
path.read_text()
'hello world!\n你好,中国!\n'
#增量形式写
with path.open('a')  as f:
    f.write('你好,北京')
path.read_text()
'hello world!\n你好,中国!\n你好,北京'
#重命名
path = path.rename('hello.txt')
# %load hello.txt
hello world!
你好,中国!
你好,北京

公众号算法美食屋后台回复关键词:pathlib,获取本文jupyter notebook 源代码。

如何处理动态语言(Python / JS)的“隐形”调用链? 本文揭示动态语言(Python/JS)中静态AST解析导致调用链“断链”的核心问题,提出通过运行时追踪补全图谱的解决方案。基于Code-Graph-RAG的cgr trace机制,分别利用pytest插件与V8 Profiler捕获真实调用路径,将动态边合并至静态图谱,并在权重体系中提升动态边优先级。实践表明,该方法可显著提升图谱覆盖率,实现“结构+行为”双视角理解代码,为MCP与Rerank系统提供可靠支持。 阅读详情

相关推荐

Playwright: Pytest vs Library vs LibraryAsync:三者如何选?

Python中Playwright的3个Target:Pytest(推荐用于E2E自动化测试,支持报告、并行、重试)、Library(同步脚本,适合爬虫与简单任务,需手动管理浏览器)、LibraryAsync(异步脚本,适用于高并发批量操作)。选择依据:测试项目选Pytest,轻量脚本选Library,高并发场景选LibraryAsync。

SmallBull的博客 219

本地化部署 DeepSeek,构建单细胞与空间转录组 AI 分析平台

本地化部署 DeepSeek,构建单细胞与空间转录组 AI 分析平台

weixin_53637133的博客 181

2024最新超详细无痛安装PyTorch,包括下载地址、环境配置与各种避坑指南

PyTorch更新很快,2024最新下载安装经验贴,包括anaconda+CUDA+cuDNN+PyTorch四部分的下载和安装。文章详细介绍了下载地址、环境配置、虚拟环境建立的问题,还温馨提示了各种闭坑指南。有需要的友友快过来康康!

qq_43596278的博客 11万+

【第 009 讲】全面掌握 Python 注释:注释的定义与作用 | 单行注释 | 三引号与多行注释 | 注释使用的最佳实践

本文系统讲解 Python 注释的完整知识体系:从注释的定义与作用讲起,梳理单行注释的书写位置、临时屏蔽用法与 PEP 8 排版规范,剖析注释被忽略的底层机制;进而说明三引号字符串的本质与嵌套问题;最后给出注释使用的三条实践原则,帮助读者写好可读性高的注释。

大模型全栈工程师 · Thanks_ks 575

告别手动改图!用Python+PyWin32驱动SolidWorks,实现参数自动化修改(保姆级避坑指南)

本文详细介绍了如何利用Python和PyWin32驱动SolidWorks实现参数自动化修改,提供从环境配置到API连接的工业级解决方案。通过实战案例和避坑指南,帮助工程师高效搭建自动化脚本工作流,显著提升设计效率。

weixin_30614109的博客 746

用逻辑分析仪实测EM4095:125kHz RFID耳标解码的电压与脉宽玄学

本文通过逻辑分析仪实测EM4095芯片,深入解析125kHz RFID耳标解码中的电压与脉宽关联现象。揭示了供电电压对曼彻斯特编码脉宽的影响规律,并提供了一套可落地的调试方法论,包括信号链路解析、逻辑分析仪配置技巧及系统级稳定性提升方案,帮助开发者解决解码不稳定问题。

weixin_30629653的博客 330

AI全栈实战 | 3.9-01 爬虫入门:requests 加 BeautifulSoup 三分钟跑通,但 90% 的人栽在这 4 个“礼貌“问题上

⚠️:本文内容仅用于。请遵守目标站点的服务条款与相关法律法规,不得对目标服务造成负担,不得采集、传播个人隐私数据。技术是中性的,边界在你手里。爬虫的入门技术(requests 发请求 + BeautifulSoup 解析)三分钟就能学会。真正区分"会用爬虫"和"会做爬虫的人"的,是这篇我们跑通"请求→解析→存储"的最小闭环,然后重点把"合规与礼貌"这根弦给你绷上。

源码获取 | 运行部署 | 定制二开修改,如果回复不及时请耐心等待,请见谅。 432

Win11内核隔离无法打开的解决方案详解

内核隔离问题的解决需遵循"先硬件后软件"的排查原则,90%以上的案例可通过驱动清理或外设断开解决。对于必须禁用该功能的用户,建议定期使用Windows Defender进行全盘扫描,并保持系统更新至最新版本。技术决策需在安全性和兼容性之间取得平衡,本文提供的多维解决方案可帮助用户构建更稳定的Windows 11使用环境。

mmoo_python的博客 4830

从一段视频到可漫游的 4D 有声场景:思路拆解与最小复现手记

只需一段手机视频,你就能生成可"走进去"的 4D 有声场景:转头时狗叫声方向随之变化,走近时声音更清晰。本文拆解 Video-to-4DAVScene 的核心思路,手把手带你用几十行 Python 搭出最小管线,把视频中的运动物体变成带空间位置的声源,并附上三个真实踩坑的排障经验,代码可直接跑。🎧

helloagent的博客 243

Moveit Servo学习

MoveIt Servo功能与配置指南 摘要:本文介绍了MoveIt Servo的功能特性,包括支持关节速度、末端执行器速度和位置控制,以及安全功能如奇点检查、碰撞检测等。通过示例展示了如何运行伺服控制demo,详细解析了关键节点和话题。最后以睿尔曼rml_63机器人为例,讲解了如何自定义伺服配置文件,包括环境设置、输入输出参数配置、平滑滤波器和规划场景监控等关键配置项。文章提供了从基础使用到自定义机器人配置的完整指导,帮助开发者实现高效的实时运动控制。

Fisher的博客 1178

【DRAM存储器十五】DDR介绍-关键技术之DLL和prefetch

详述DDR DLL和预取原理以及几个DDR相对初代SDRAM新增的时序参数

highman110的博客 4373

【每天一个 Python 小案例30】Python 基础知识综合小项目:我的工具盒

作为系列收官,本篇把前 29 篇的知识点合成一个能直接用的命令行工具"我的工具盒":计算器(用 ast 解析表达式,不碰 eval)、单位换算与温度转换(一张换算表 + 特例分支)、记账与分类统计(Decimal + JSON 持久化)、以及用"字典当命令表"把菜单和业务逻辑解耦的主循环。文中对比了 eval 的安全隐患与 ast 白名单的做法,解释了 lambda 闭包在字典里的写法与晚绑定陷阱,并在最后给出整个系列的知识地图,把变量、数据结构、控制流、函数、类、异常、文件、标准库八块内容对应到具体篇目。

xinjiyaya的博客 427

pandas教程:2012 Federal Election Commission Database 2012联邦选举委员会数据库

里面包含了支持者的名字,职业和雇主,地址,赞助金额。我们可以已经能想到如何切割、整理数据,来提取赞助者的统计数据,或提取宣传活动的模式,这里我们展示一些不同的分析方法。可以看到有些职业是同一种工作类型,指代的是同一个东西。这两个连续操作是分别独立执行的,一个结束后,另一个才开始。上,这里我是把数据集压缩成了ZIP格式,解压后能正常导入)。我觉得也有必要好好了解一下,这个网站做了很好的讲解,),所以我们最好添加这样的信息。这样的情况,即把两个索引操作连在一起。,发现映射关系被正常执行了,所以这里的。

Cachel Wood的博客 351

yolo 和 deft 算法的区别

你应该是打错了:是,不是 defrat;

曾大强博客 258

OpenClaw 开机自启配置:Windows/macOS/Linux 全平台技术指南

OpenClaw 开机自启全平台配置指南 本文提供了在Windows、macOS和Linux系统上配置OpenClaw开机自启的完整技术方案。主要内容包括: Windows配置:提供三种方法(Windows服务、任务计划程序、启动文件夹),详细说明服务脚本创建、服务注册和测试流程 macOS配置:使用LaunchAgent实现开机自启,包含配置文件创建和加载方法 Linux配置:通过systemd服务实现,包括服务单元文件创建和启用步骤 系统要求:明确硬件(64位CPU/4GB内存)和软件(各平台操作系统版

一键难忘的博客 2995

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

两张表合并之后,行数悄悄多了一倍

pandas merge 行数异常膨胀源于右表键不唯一,导致数据静默复制。实测显示,未聚合的右表(756行)与左表合并后行数增至504行,合计膨胀3.5倍,但无报错。validate 参数仅在检查键唯一性时有效,one_to_one 和 many_to_one 可拦截问题,但需结合 duplicated() 前置检查。正确做法为先按键聚合右表,再合并,避免重复。建议合并前后核对行数、合计,并使用 indicator=True 排查匹配情况,确保数据一致性。

patrickstar231的博客 240

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

蓝桥杯·全国青少年信息素养大赛·电子学会Python/C++考级 备考:莫队算法离线区间查询详解

备赛进行时:第十八届蓝桥杯软件赛报名已于 2026-10-08 10:00 开启、12-18 14:00 截止,省赛定在 2027-04-10(C/C++·Python 程序设计 9:00–13:00);中国电子学会 2026 年 12 月软件编程(C/C++ 一级至十级、Python 一级至六级)考级报名 9/23–12/2 16:00、统考 12-12;全国青少年信息素养大赛 2026—2027 赛季算法应用主题赛也已进入复盘练兵窗口。

IT_Scratch的博客 175

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

智慧农业实战:育秧车间秧盘计数与苗情分级的Python实现

首先,建立统一的数据结构,保存每盘秧苗的编号、批次、覆盖度、叶色得分和播种天数。A = "壮苗"B = "合格苗"C = "弱苗"@dataclassdays: int。

荆棘鸟智能的博客 132

我用 200 行代码写了个“代码屎山检测器“,扫完公司的老项目后我沉默了

这个工具不能帮你把屎山铲平,但至少能让你知道自己面对的是多大的山,也能在代码评审时用数据说话——“这个 PR 把圈复杂度从 12 推到了 18,能不能拆一下?毕竟,不能量化的东西,就没法改进。

xixiaoyunya的博客 253

Java Arrays.asList 常见坑详解|UnsupportedOperationException、数组联动、基本类型 bug

解析 Arrays.asList 常见开发陷阱,演示 UnsupportedOperationException、底层数组引用共享、基本类型数组问题,区分 Arrays 内部 ArrayList 与 java.util.ArrayList,给出数组转 List 的各种场景正确代码。

weixin_42617033的博客 503

【每天一个 Python 小案例29】Python 实现商品购物车

本篇实现一个购物车:商品目录、加入商品、修改数量、移除商品、查看小计、计算满减与 VIP 折扣、结算扣库存。核心设计是"目录与购物车分离"——目录存商品主数据,购物车只存 {商品编号: 数量};金额一律用 Decimal 并做 ROUND_HALF_UP 舍入。折扣部分讲清阶梯满减的匹配顺序(阈值从高到低、命中即停)与叠加顺序(先满减、后打折),并用一次完整结算演示 706 元如何变成 613.70 元。

xinjiyaya的博客 218

【随笔】KV缓存量化:省下的显存,要付出多少数值误差

用可运行量化器解释位宽、比例信息、分组和离群值的关系,核算KV缓存实际载荷,并给出Transformers配置与容量、延迟、质量验收方法。

code2cat的博客 472

Spring Boot 自动配置原理

Spring Boot 自动配置由 @EnableAutoConfiguration 导入选择器,读取 jar 中 .imports 候选清单,经去重、排序、排除后逐类做条件判断,通过才注册 Bean。延迟导入让用户 Bean 优先,@ConditionalOnMissingBean 使默认配置让位。失效时查清单和 Negative matches。

2401_89855466的博客 394

Python的字典

Python字典是存储键值对的数据结构,通过键(key)快速查找对应的值(value)。可使用{}定义,支持增删改查操作:通过dict[key]查询或修改值,get()方法安全获取并设置默认值,del dict[key]删除键值对,keys()、values()和items()用于遍历。items()结合双变量循环可高效遍历所有键值对,提升代码可读性与灵活性。

qq_43010954的博客 199

【AI 开发从入门到进阶 · 09】RAG 实战:用 Embedding + FAISS 从零搭建本地知识库问答(含切分、重排与幻觉控制)

本文系统讲解RAG(检索增强生成)的实现与优化,从为何选择RAG而非提示工程或微调出发,完整演示一条可运行的中文RAG链路:文档加载、递归切分、向量化、FAISS索引构建、混合检索与Prompt生成。重点剖析五大关键环节——切分策略、Embedding选型、混合检索、重排(Rerank)及幻觉控制,并强调分模块评估的重要性。附常见问题排查与生产实践建议,为构建高效、可信的企业知识问答系统提供完整指南。

信息安全领域优质创作者|操作系统领域专家 81

基于深度学习的工业表面缺陷检测系统-毕业设计

只用正常样本训练的工业表面缺陷检测系统:15 类工业品、5354 张图、73 种缺陷。PatchCore-lite 图像级 AUROC 0.896、像素级 0.951,单张 CPU 推理 115 毫秒;附 PaDiM 与整图基线对照,含 Django 系统、论文与使用文档。

csbysj2020 196
上一篇: Gradio~让你的机器学习模型~性感起来
下一篇: YOLOv8——CV界的XGBoost
算法美食屋
博客等级 码龄9年 2万+粉丝 154原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值