python 小技巧(glob,guid,序列化,压缩字符,有序字典,sorted函数,分片)

Pandas入门教程(二十二):股票数据分析实战——yfinance 获取数据、技术指标与收益率分析 把 Pandas 用在真实场景,才能体会它的价值。本文以茅台股票为例,用 yfinance 获取历史行情,完成缺失值处理与列筛选,绘制收盘价曲线,计算 SMA 移动平均线与 RSI 相对强弱指数,并通过日收益率、累计收益率和波动率完成完整的量化分析流程。 阅读详情

1、glob模块

glob模块可以说是最简单的一类模块, 它的内容非常少。使用者可以运用它来查找符合条件的文件路径名, 其操作方式跟使用命令行进行文件搜索大致相同。

在查找文件时,只需要用到三种匹配符, 它们分别是以双星号表示的模式、以问号表示的模式以及以波浪线表示的模式。具体而言, 以双星号为核心的规则能匹配到零个或者多个字符;而采用问号的方式则对应单个字符。

使用双引号来匹配那些处于指定范围里面的字符, 比如说像数字一类的东西。

glob.glob

它会返回一个包含了所有能够匹配上的文件路径的列表, 该函数本身仅仅存在一个参数, 这个参数的作用是去定义关于文件路径应该如何进行匹配的具体规则, 在这个位置上面, 既可以选择采用绝对路径的形式, 同时也可以去选择采用相对路径的形式, 以下是具体使用glob.glob这一项功能的示例:

请提供需要改写的句子。

生成唯一ID字符串函数_python glob_glob模块文件路径匹配

结果:

glob模块文件路径匹配_生成唯一ID字符串函数_python glob

例子2

生成唯一ID字符串函数_python glob_glob模块文件路径匹配

结果:

glob模块文件路径匹配_生成唯一ID字符串函数_python glob

如果你想要拿到每一个文件的那种完整的, 从根目录开始算起的路径的话, 你可以在那个函数把东西还回来的时候, 去调一下那个括号里面有内容的办法来解决这个问题:

python glob_glob模块文件路径匹配_生成唯一ID字符串函数

结果:

生成唯一ID字符串函数_python glob_glob模块文件路径匹配

glob.glob

去获取一个可以进行迭代操作的对象, 借助于这个对象, 就能逐个地去拿到那些符合匹配条件的文件路径名字。

和glob.glob()这个函数来做一个对比的话, 区别在于: glob.glob是一次性地把所有的已经匹配上的路径全部都拿回来的, 但是glob.iglob呢, 它是每次只获取一个已经匹配好的路径的。

这种情况在某些方面是比较相似的, 具体来说是和在.NET技术栈里面用于访问数据库的操作模式类似。

glob模块文件路径匹配_python glob_生成唯一ID字符串函数

结果:

生成唯一ID字符串函数_glob模块文件路径匹配_python glob

2、生成唯一的标识。

在少数的时候, 你必须要生成一个独一的字符序列。我发觉不少朋友运用md5()这个功能来达成这样的目标, 然而它真的并不是为了这般用途而设计的。事实上, 存在一个叫做uuid()的功能, 它是专门为了这种用途而存在的。

3、将数据转换成json这种格式, 以便进行序列化。

python glob_生成唯一ID字符串函数_glob模块文件路径匹配

4、把那些字符的数量给压缩掉。

当提起压缩这个概念的时候, 大家普遍脑海中浮现出的都是诸如文件之类的东西。典型的例子就是那些采用ZIP格式结构的压缩包数据。而在当前讨论的情形之下, 系统允许对非常长的字符序列进行压缩操作, 这一过程完全不涉及任何传统的档案文件格式。

import zlib

string = """ Lorem ipsum dolor sit amet, consectetur

adipiscing elit. Nunc ut elit id mi ultricies

adipiscing. Nulla facilisi. Praesent pulvinar,

sapien vel feugiat vestibulum, nulla dui pretium orci,

non ultricies elit lacus quis ante. Lorem ipsum dolor

sit amet, consectetur adipiscing elit. Aliquam

pretium ullamcorper urna quis iaculis. Etiam ac massa

sed turpis tempor luctus. Curabitur sed nibh eu elit

mollis congue. Praesent ipsum diam, consectetur vitae

ornare a, aliquam a nunc. In id magna pellentesque

tellus posuere adipiscing. Sed non mi metus, at lacinia

augue. Sed magna nisi, ornare in mollis in, mollis

sed nunc. Etiam at justo in leo congue mollis.

Nullam in neque eget metus hendrerit scelerisque

eu non enim. Ut malesuada lacus eu nulla bibendum

id euismod urna sodales. """

print "Original Size: {0}".format(len(string))

compressed = zlib.compress(string)

print "Compressed Size: {0}".format(len(compressed))

decompressed = zlib.decompress(compressed)

print "Decompressed Size: {0}".format(len(decompressed))

5、

其中的字典是无序的, 因为它是按照hash来进行存储的, 但是在当中有个模块, 这个模块的名称是英文, 代表着收集、集合的意思, 里面自带了一个子类, 这个子类实现了对字典对象中元素的排序。请看下面的实例:

普通的字典虽然排列的顺序是不一样的, 但是里面的内容是相同的, 它们所构成的仍然是一个字典。

dict1= {'z':3 ,'y':2, 'x':1}

dict2= {'z':3 , 'x':1,'y':2}

print dict1 == dict2

print dict1

print dict2

输出:

dict1 = OrderedDict()

dict1['z'] = 3

dict1['y'] = 2

dict1['x'] = 1

dict2 = OrderedDict()

dict2['z'] = 3

dict2['x'] = 1

dict2['y'] = 2

print dict1 == dict2

print dict1

print dict2

输出:

再看几个例子

dict1 = {'banana': 3, 'apple':4, 'pear': 1, 'orange': 2}

kd = OrderedDict(sorted(dict1.items(), key=lambda t: t[0]))

print kd

#按照value排序

vd = OrderedDict(sorted(dict1.items(),key=lambda t:t[1]))

print vd

#输出

# OrderedDict([('apple', 4), ('banana', 3), ('orange', 2), ('pear', 1)])

# OrderedDict([('pear', 1), ('orange', 2), ('banana', 3), ('apple', 4)])

6、函数

其中包含一个用于排序的内置函数, 它针对列表执行排序操作, 关于此函数的更多详情可以参阅官方网站文档部分所提供的说明信息, 其具体的函数原型定义表述如下:

()

参数解释:

1、您需要明确指定那个需要进行排序工作的列表, 这一事项无需再多作任何额外的说明, 因为这是不言自明的规则之一。

2、cmp这个词是一个函数符号, 它是用来在指定执行排序动作的时候, 提供进行比较用的那个函数逻辑的存在形态的, 用户这边是可以自己去定义一个具体的函数名放进去, 或者直接用一个现成的函数名称来替代它的, 比如:

为了针对那些包含类对象的列表, 其中的每一个成员都具备三个数据域的情况, 在进行比较排序操作的过程中, 允许使用者自主定义用于比较的函数;例如在当前场景下, 如果需求是通过对比第三个数据成员来实现对整个列表的排序处理, 那么代码可以依照如下方式进行书写:

=

('john', 'A', 15), ('jane', 'B', 12), ('dave', 'B', 10)

(, 键=: )。

3、那个叫作为关键参数, 它实际上是一个函数。它的用途是指明应该选取待排序元素里面的哪一个部分来执行排序操作。接下来我们使用前面提到的示例来进行解释, 具体的代码呈现如下:

(, key= : )

这个由key参数所指定的函数, 它的作用就是去取出每一个元素里面的第三个域(也就是那个空格所占的位置), 所以说在这个排序的过程当中了, 它是会基于所有的元素里面的第三个域来进行排序操作的。

在拥有了上述函数之后, 也可以使用这个函数来实现相应的功能, 假设当前需要通过第三个域来进行排序操作。具体的做法可以表述为以下几种方式:

(, key=.(2))

函数也是可以开展那种包含多个层级的排序活动的, 比如说, 如果你需要基于第二个字段以及第三个字段来实施排列操作, 那么具体的代码写法可以这样来处理。

这个表达式的意思是, 首先对集合中的元素的第二个组成部分进行排序操作, 紧接着再根据第三部分组成的内容进行排序。

4、那个叫做参数, 是咱们不用多说的事儿, 它是一个布尔值变量, 是用来表示排列顺序是按升序还是按降序来的, 默认值是假, 这里表示的是升序, 要是把这个定义为真, 那就按照降排的方式来了。

7、分片

list1 = "0123456789"

print("打印第0个元素:" ,list1[0])

print("负数表示倒数第N个元素,-1表示倒数第一个元素:" ,list1[-1])

print("分片操作,list1[start:end], start会包含在结果中而end却不会:" ,list1[1:5])

print("冒号后不写表示从start到末尾:" ,list1[5:])

print("表示从倒数第二个元素一直到末尾:" ,list1[-2:])

print("表示从倒数第六个元素到倒数第二个元素,但不包含倒数第二个元素:" ,list1[-6:-2])

print("start不写表示从开头开始到end, 但不包含end:" ,list1[:4])

print("start和end都不写表示整个列表:" ,list1[:])

print("支持步长,步长为正数表示从start到end每隔N个数打印一个:" ,list1[::2])

print("步长为负数表示从end到start每隔N个数打印一个:" ,list1[::-2])

print("若end比start小,则步长必须为负数否则会出错:" ,list1[-1:-6:-1])

print("两个序列相加会合并:" ,[1, 2, 3] + [4, 5, 6])

print("序列乘法相当于3个序列相加:" , [1, 2, 3] * 3)

对元素进行修改, 或者执行删除操作, 以及实施分片形式的元素修改与删除。

list2 = [0,1,2,3,4,5,6,7,8,9]

list2[1] = 'b'

print(list2) #[0'b'23456789]

del list2[1]

print(list2) #[023456789]

del list2[5:]

print(list2)

list2[5:] = [6,7,8,9]

print(list2)

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

相关推荐

解决fetch_california_housing数据集403错误的三种实用方法

本文针对机器学习初学者加载fetch_california_housing数据集时常见的HTTPError 403: Forbidden错误,提供了三种经过实测的解决方案。详细介绍了手动下载与本地替换、修改源码下载路径以及配置网络访问策略的具体步骤,帮助用户根据自身网络环境和开发场景选择最佳方法,确保数据集顺利加载。

weixin_29074295的博客 550

python 小技巧(glob,guid,序列化,压缩字符,有序字典,sorted函数,分片)

  1、glob模块     glob模块是最简单的模块之一,内容非常少。用它可以查找符合特定规则的文件路径名。跟使用windows下的文件搜索差不多。查找文件只用到三个匹配符:”*”, “?”, “[]”。”*”匹配0个或多个字符;”?”匹配单个字符;   ”[]”匹配指定范围内的字符,如:[0-9]匹配数字。     glob.glob     返回所有匹配的文件路径列表。它只有一个参...

weixin_34195364的博客 173

QGIS效率提升神器:qgis_mcp插件+VSCode联合工作流配置全解析

本文详细解析了如何通过配置qgis_mcp插件与VSCode的联合工作流,实现语音控制和代码自动化来大幅提升QGIS操作效率。该方案将自然语言交互与现代编辑器生态结合,为地理信息专业人士构建了智能、高效的全新工作模式,彻底改变传统GIS操作方式。

weixin_29228203的博客 191

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

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

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

Charles 抓包工具下载安装及基础使用

本篇内容主讲关于Charles抓包工具,从下载安装以及配置信息,证书的下载安装以及PC端设置代理配置和移动端设备配置代理,阐述关于Charles抓包工具面板的基础使用以及如何进行抓包和设置断点,对于软件测试以及对抓包感兴趣的读者可以翻阅!感谢大家的支持!!!

灵魂学者的博客 2958

BUPT软件安全实验三

可以看出栈溢出对程序运行的安全性有很大的威胁,如果不对栈进行保护,只要系统中存在栈溢出漏洞,即可令攻击者通过非正当方法获取操作权限。(6)解决思考题,即:在不修改StackOverrun程序源代码的情况下,构造shellcode,通过JMP ESP的方式实现通过记事本打开shellcode.txt(可使用CreateProcessA或WinExec等API)。查看缓冲区信息,可以看到dest指向地址0x0012FAF0,其为数组的存放起始位置,也就是shellcode注入的起始位置。

7xun's space 1966

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

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

helloagent的博客 234

别再傻傻分不清了!STM32定时器里Prescaler和ClockDivision到底有啥区别?

本文深入解析STM32定时器中Prescaler和ClockDivision的区别与应用场景。Prescaler作为定时器的'心跳调节器',决定计数频率;而ClockDivision则是输入捕获的'抗噪滤镜',有效抑制高频噪声。通过实战案例和示波器实测数据,帮助开发者避免常见配置误区,提升嵌入式系统稳定性。

weixin_29193259的博客 319

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

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

xinjiyaya的博客 426

IAR安装成功的关键:STM32设备支持文件导入方法

IAR安装常卡在设备支持缺失这一步——尤其对STM32新手,没导入对应芯片包,编译直接报错。实测发现,必须通过IAR的Tools→Options→IDE→Configuration→Device Support手动加载STM32设备支持文件,否则新建工程时连芯片型号都选不到。IAR安装是否顺利,往往就差这一步。

weixin_42527589的博客 680

Laser-Marking 激光振镜打标机的开源代码 - 下载 - 搜珍网

为了方便开发者的使用和定制化需求,我们在这里提供激光振镜打标机的开源代码,并附带详细的描述。首先,让我们来了解一下激光振镜打标机的基本原理。振镜系统由两个可移动的反射镜组成,可以控制激光束在水平和垂直方向上的偏转角度,从而实现对工件的精确控制。通过这段开源代码,开发者可以根据自己的需求对激光振镜打标机进行二次开发和定制化。你可以修改振镜角度、打标速度等参数,也可以添加其他功能,例如自动识别和追踪等。首先,我们创建了一个串口对象,用于与激光振镜打标机进行通信。函数实现了对用户输入文本的打标操作。

TechProX的博客 1278

详解Python条件语句

在 Python 中,if...else 是一种条件语句,可以根据给定的条件执行不同的操作。这个语句通常用于控制程序的流程。

2601_96798737的博客 206

Harness Engineering:让Coding Agent真正落地生产

本文将带你系统性地了解如何让Coding Agent真正落地生产,核心是依托(全球领先的持续交付、云成本管理、 feature flagging、安全治理一体化平台),结合企业级AIDD(AI-Driven Development)的工程化实践,构建一套可信赖、可观测、可扩展、可治理的Coding Agent落地体系。核心概念与理论基础:什么是Coding Agent?它和普通的AI代码补全工具(比如GitHub Copilot)有什么区别?什么是Harness Engineering?

移动开发前沿的博客 455

Python3 协程:异步编程的核心机制与实战

协程是解决I/O密集型任务等待瓶颈的高效机制,相比线程更轻量、无锁开销。从yield到async/await的演进,使异步编程语义清晰、易于理解。通过async/await可实现并发执行多个任务(如gather、create_task),显著提升网络请求、爬虫等场景性能。关键在于使用异步库(如aiohttp)替代同步库,避免阻塞事件循环。合理控制超时与并发数,才能发挥协程最大优势。

Lxn2zh的博客 159

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

二进制木马免杀-Python 分离免杀与 Web 挂马

二进制木马免杀-Python 分离免杀与 Web 挂马

2503_94637398的博客 268

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

torch.compile 差异仅 1e-6,边界样本预测为何翻转

torch.compile 加速后输出与 eager 不一致,部分预测翻转。逐层对比与 graph break 分析定位到动态分支翻转根因。容差回归仅适用于无分支翻转场景,零容忍场景应禁用编译。

昨日种种,皆成今我。今日种种,皆成新我。 159

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

蓝桥杯·全国青少年信息素养大赛·电子学会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的博客 130

【Python】国家中小学智慧教育平台电子教材批量下载与 PDF 合成实战

成果:两本语文电子课本(一年级上册 118 页 / 23MB、三年级上册 130 页 / 30.3MB),合计 248 页、约 54MB,单本下载加合成 40~60 秒,PDF 页数校验全部通过。经验教训SPA 站点的数据接口优先从 bundle 里挖,比抓页面稳得多;资源链接要按 private/public 分组看待,只取平台公开部分;页数、目录名这类“可推断”的信息,永远用实际响应验证一次;受限环境里“能不能跑浏览器”要在方案定稿前确认。后续计划:这版 PDF 是图片版,没有文字层;

木头大左的博客 134

魔塔社区微调训练Qwen2-1.5B-Instruct模型并烧录到‌RK3568开发板教程

本文基于Ubuntu 22.04 + CUDA 13.0.3环境,使用LLaMA-Factory框架对Qwen2-1.5B-Instruct模型进行LoRA微调,训练儿童故事生成专用模型。通过配置qwen模板、制作alpaca格式数据集、执行sft训练并合并LoRA权重,最终将模型转换为GGUF格式,并量化为Q4_K_M以适配RK3568嵌入式平台。全程支持国产镜像加速下载与显存优化,实现高效轻量化部署。

浅清秋慕夏的博客 186

【回眸】DeepSeek V4.1 Flash 快速上手与实战

本文介绍如何高效本地部署开源大模型,通过现代化工具链实现分钟级环境搭建。聚焦显存优化、一键安装、代码调用与多轮对话实现,解决“显存不足”“连接超时”等痛点,提供参数调优与结构化输出技巧,助力开发者在离线场景下快速构建稳定、高效的本地推理系统。

啤酒鸭的物联网开发记录博客 223

智叟云集-手机证据抓取系统的工程结构与应用入口

本文系统阐述手机证据抓取系统的工程结构与应用入口,涵盖四大层面:工程目录划分(Android、Python服务、Web页面、测试与构建工具);Android组件通过Manifest声明可启动页面,主界面由MainActivity管理;Python服务通过run.py解析参数并启动FastAPI应用,支持远程访问;浏览器页面采用HTML/CSS/JS分离架构,静态资源通过路径关联,实现动态交互。各模块分工明确,协同构建可运行的采集系统。

2301_77178996的博客 232

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

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

weixin_42617033的博客 472

利用python中matplotlib.pyplot库绘制图

plt.plot(x,y) # x,y是每个点的坐标,plot()把每个点按顺序画折线。plt.subplots(2,2)表示绘制2*2的子图布局,axs[0,0]表示在第0行第0列绘制子图...coordinates_i[:,0]表示获取每一行(每一个spot)的第0列(x坐标)coordinates_i[:,1]表示获取每一行(每一个spot)的第0列(y坐标)plot.subplot(2,2,1) 表示子图布局是2*2的,开始绘制第一个。也可以导入数据绘制。可以设置color属性,设置颜色。

qq_46147236的博客 102

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

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

xinjiyaya的博客 210

Spring Boot 自动配置原理

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

2401_89855466的博客 375

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

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

code2cat的博客 454
上一篇: Python机器学习10大经典算法的讲解和示例
下一篇: Python机器学习入门:构建你的首个预测模型
普通网友
博客等级 码龄163天 66粉丝 144原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值