- 博客(445)
- 收藏
- 关注
原创 使用 pyperclip 进行跨平台剪贴板操作
pyperclip 是一个轻量级的 Python 库,支持在不同操作系统(Windows、macOS、Linux)中进行剪贴板的复制和粘贴。pyperclip 是一个极为实用的工具,能够极大地提高开发者的工作效率,特别是在需要频繁处理文本的场景中。通过简单的 API,我们可以轻松实现跨平台的剪贴板操作,为我们的开发工作带来便利。5.1 环境兼容性:确保你的 Python 环境兼容 pyperclip,特别是在 Linux 系统上,有时需要额外的依赖。1.3 轻量级:无额外依赖,安装简便。
2024-12-08 17:29:11
636
原创 Python:使用slugify生成URL友好的字符串
python-slugify 是一个极为实用的工具,能够帮助开发者轻松生成符合 URL 规范的 slug,提升内容的可管理性和可读性。通过简单的 API,我们可以快速将任意字符串转换为友好的 URL 表达形式,为我们的 web 开发工作带来便利。它通过去除特殊字符、处理空格,并将字符串转换为小写,从而确保生成的 slug 可以在 URL 中安全使用。4.1 字符集支持:虽然 python-slugify 支持多种字符处理,但某些特殊字符可能无法如预期处理,建议在生成 slug 前先检查输入内容。
2024-12-08 17:15:40
529
原创 Pygments:高效的语法高亮工具
1.2 丰富的输出格式:支持多种输出格式,包括 HTML、LaTeX、Markdown 和终端输出等,方便集成到不同环境中。Pygments 是一个极为实用的工具,能够有效提升开发者的工作效率,特别是在需要频繁展示代码的场景中。5.2 文件大小:对于大文件,使用完整 HTML 输出时可能会影响性能,建议使用更简单的输出格式。1.3 灵活的样式选项:内置多种样式,可以通过简单的配置进行切换,轻松定制代码展示的外观。这里,-f 指定输出格式,-O full 生成完整 HTML,-o 指定输出文件。
2024-12-08 17:11:37
522
原创 美化Jenkins控制台输出字体颜色
在使用Jenkins进行定制化执行任务时,可能会遇到来自于目标管道反馈和打印的日志,有时可能会包含颜色的字体,但Jenkins的控制台输出默认是不带字体颜色,如果需要显示字体颜色,需要安装相应插件 AnsiColor。3、任务选择配置项,勾选 Color ANSI Console Output & xterm 格式。1、Manage Jenkins >> Plugins >> 搜索安装AnsiColor。2、重启Jenkins。
2024-12-08 17:05:50
351
原创 准确率99.9%的离线IP地址定位库 ip2region - python 示例
ip2region是一个离线IP地址定位库和IP定位数据管理框架,10微秒级别的查询效率,提供了众多主流编程语言的 xdb 数据生成和查询客户端实现。号称准确率99.9%的开源离线IP地址定位库。2、本质就是导入和使用data目录下的 ip2region.xdb。
2024-12-08 17:03:09
945
原创 Hypothesis:高效的 Python 测试工具
Hypothesis 是一个强大的 Python 测试库,旨在自动生成各种测试案例,以帮助开发者发现潜在的边界问题和隐藏的错误。4.1 测试用例执行:运行 pytest 测试时,Hypothesis 会自动生成不同的输入数据,并执行相应的测试用例。4.2 边界情况生成:Hypothesis 会自动探索边界条件,例如极大或极小的输入,零值,空集合等,帮助开发者发现边界错误。1.1 自动化生成测试用例:Hypothesis 会根据你的测试函数自动生成不同的输入数据,从而覆盖更广泛的场景和数据组合。
2024-12-08 17:01:33
1456
原创 美化pytest运行:pytest-sugar
pytest-sugar 是一个用于增强 pytest 测试框架的插件,它提供了美观的测试运行报告,使测试输出更加直观易读。pytest-sugar 是一个非常实用的插件,通过简化测试输出,提升了测试的可读性和效率。:虽然 pytest-sugar 提供了美观的输出,但在非常大的测试集上可能会有一定的性能影响,建议在性能敏感的场景下谨慎使用。它会自动格式化输出。:确保你的 pytest 版本与 pytest-sugar 兼容,避免不必要的问题。:替代默认的测试输出,提供友好的视觉效果。
2024-10-07 21:25:30
734
原创 xmltodict 处理 XML 数据案例解析
xmltodict 模块是处理 XML 数据的强大工具,通过简化 XML 与 Python 数据结构之间的转换,开发者可以轻松地解析和生成 XML 数据。XML 转换为字典:在 xml_to_dict 函数中,使用 xmltodict.parse() 将 XML 字符串转换为 Python 字典。字典转换为 XML:在 dict_to_xml 函数中,使用 xmltodict.unparse() 将字典转换回 XML 字符串。2.支持嵌套结构:处理嵌套的 XML 结构时,自动将其转换为嵌套的字典。
2024-10-07 20:33:30
622
原创 网络扫描模块python-nmap案例解析
它可以方便地在 Python 脚本中执行网络扫描,并解析 Nmap 的输出结果。python-nmap 模块是进行网络扫描的强大工具,通过简单的接口和丰富的功能,开发者可以轻松地在 Python 中集成网络安全检查和资产发现功能。6.1执行扫描:在 run_nmap_scan 函数中,创建了一个 nmap.PortScanner 实例,并使用 scan() 方法执行网络扫描。6.2 解析结果:扫描结果通过访问 scanner.all_hosts() 方法获取,并打印每个主机的状态和开放的端口信息。
2024-10-07 20:20:21
669
原创 Linux终端管理效率:深入学习Screen
4.2. 复制模式:在 screen 中,可以进入复制模式以选择和复制文本,按 Ctrl + A,然后按 [ 进入复制模式。3.5 分离会话:在会话中按 Ctrl + A,然后按 D,可以将会话分离到后台。3.7 关闭会话:在会话中运行 exit 命令或按 Ctrl + D,可以关闭当前会话。4.1. 共享会话:可以通过以下命令将会话分享给其他用户,在远程协作场景非常有用。会话管理:允许用户在同一终端中创建多个会话,并在这些会话间自由切换。共享会话:支持多用户共享同一会话,适合团队协作。
2024-10-07 20:08:55
721
原创 提升 CI/CD 稳定性:Jenkins 开机自检与推送通知
为了解决这个问题,可以使用一个自检服务,定期检查系统的启动时间,并在服务器重启时通过消息推送进行通知。通过实现 Jenkins 的开机自检机制,可以在服务器重启时及时得到通知,从而确保持续集成过程的稳定性。:check_jenkins_push 函数构建了要发送的消息体,并使用 requests.post 发送到指定的 webhook。当服务器重启时,推送的信息将包括开机时间和当前时间,并提醒用户关注 Jenkins 的构建任务。如果重启时间小于设定的小时数,程序将调用推送通知函数,提醒用户。
2024-10-07 20:02:50
1095
原创 监控文件变化的神器:watchdog 模块
watchdog 模块是监控文件变化的强大工具,通过实时捕获文件系统的变化事件,开发者可以在自动化构建、文件同步等场景中提高工作效率。掌握该模块的基本用法,可以帮助开发者更好地管理文件和目录,提升应用的响应能力。它能够检测文件和目录的创建、修改、删除等事件,并能实时触发相应的操作。这个模块适合用于自动化构建工具、文件同步服务和其他需要文件监控的应用。在 start_watching 函数中,创建了一个 Observer 实例并将自定义事件处理程序与指定的监控路径关联。
2024-10-07 19:54:53
680
原创 Python运行态 - 代码调试:掌握pdb
当程序执行到该行时会暂停,允许开发者查看 length 和 width 的值,并逐步执行到计算面积的步骤。示例 3 - 检查调用栈:在 main_calculate 函数中设置断点,便于开发者在调用 calculate 函数之前查看变量的状态。:pdb 是调试 Python 程序的强大工具,通过灵活设置断点、单步执行和检查变量,开发者能够深入理解代码的执行流程,快速定位并修复问题。示例 2 - 循环中的断点:在这个示例中,每次进入循环时都会暂停,开发者可以查看当前的循环索引 i。
2024-10-07 19:51:10
453
原创 Python:itertools.cycle的使用示例
itertools.cycle 是 Python 标准库中的一个强大工具,用于创建一个无限循环的迭代器,能够方便地重复遍历可迭代对象中的元素。它非常适合在需要循环处理数据的场景中使用,提供了高效的内存管理和灵活的组合能力。:itertools.cycle 是一个极其实用的工具,能够轻松实现循环迭代的需求,特别适合在需要重复元素的场景中使用。循环迭代:可以无限循环一个可迭代对象,适用于重复处理元素场景。简洁易用:通过简单的接口,可以轻松实现复杂的循环逻辑。使用时请注意循环的终止条件,避免进入无限循环。
2024-10-07 19:48:44
550
原创 Trickle流量限速工具使用示例
trickle 是一个轻量级的流量限速工具,允许用户限制应用程序的网络带宽使用,以便更好地管理网络资源和优化网络性能。本文将介绍 trickle 的安装和使用方法,并通过 Python 封装示例展示如何使用 trickle 控制网络带宽。测试并确认所使用的应用程序是否受支持。使用 trickle 限制带宽可能会影响应用程序的性能,尤其是在高带宽要求的操作中。:trickle 是一个实用的工具,方便我们灵活地控制应用程序的网络带宽使用和测试。优化性能:提高网络性能,通过均衡带宽使用,避免网络拥堵。
2024-10-07 19:47:00
871
原创 规避ssh交互密码-自动化登录神器sshpass
sshpass 是一个方便的工具,特别适合需要在脚本中自动化 SSH 登录和操作的场景。在使用时,请注意密码的安全性和管理,以确保系统的安全性。:sshpass 是一款用于简化 SSH 自动化登录的工具,它允许在脚本中通过非交互的方式传递密码,从而自动登录到远程服务器,使得我们可以更高效地管理 SSH 登录过程。谨慎在生产环境的使用限制: sshpass 适用于简单的自动化任务,但不推荐用于生产环境中的敏感操作。进行必要的权限控制:确保使用 sshpass 的脚本和命令具备适当的权限,避免不必要的风险。
2024-10-07 19:45:06
1638
原创 Docker exec bash -c 使用详解与 Python 封装示例
docker exec 是 Docker 的一个实用命令,允许在正在运行的容器中执行命令。通过 bash -c 选项,可以执行复杂的命令串。:通过上述 Python 封装,可以更加灵活地在 Docker 容器中执行命令,提升操作的效率和便捷性。不干扰主进程: 在容器内运行命令而不会影响主进程。灵活执行: 允许在容器内执行复杂命令或脚本。2、执行的命令需谨慎,避免执行不安全的命令。便捷调试: 快速在容器内验证和调试配置。3、确保容器内的用户具有执行命令的权限。4、命令需与容器内的操作系统和环境兼容。
2024-10-07 19:42:15
893
原创 SSH -L 代理与反向代理转发详解
SSH -L 选项用于设置本地端口转发,而反向代理转发则允许远程主机访问本地服务。-R 4000:localhost:3000:将远程服务器的 4000 端口转发到本地计算机的 3000 端口。反向代理转发:访问 http://remote.server.com:4000 将显示本地计算机上的服务内容。小结:通过以上技术就可以灵活地进行本地端口转发和反向代理转发,安全地访问和管理远程或本地服务。-L 8080:localhost:80:将本地的8080 端口转发到远程服务器80 端口。
2024-10-07 19:39:35
1006
原创 python高阶:一等公民
在Python中,一切皆对象,面向对象的更彻底。class是对象,函数是对象,代码和模块也是对象,其中类(相当于模板)和函数属于Python的一等公民,所以可以动态进行修改类的属性等。3、可以作为参数传递给函数。2、可以添加到集合对象中。4、可以当做函数的返回值。1、赋值给一个变量。
2024-08-18 19:54:44
473
原创 conda配置国内源
Conda 是一个开源的软件包管理系统和环境管理系统,用于安装多个版本的软件包及其依赖关系,并在它们之间轻松切换。Conda 是为 Python 程序创建的,适用于 Linux,OS X 和Windows,也可以打包和分发其他软件。由于某些原因,有时我们需要设置国内源,优化网络配置。
2024-08-18 19:52:29
2343
原创 Python:异步编程③
事件循环则每次执行都会去检查任务列表的每个任务,如果是可执行,则会把所有可执行的任务,会把这些任务放到可执行的列表。遇到io请求,处于io等待的行为,就忽略它,自动切换去执行其他事件。如果io请求已经处理完成了。io完成后在去执行之后的事件。
2024-08-11 18:49:12
395
原创 Python:异步编程2
在一个线程中,如果遇到IO等待时间,线程不会傻等,而是利用空闲的时间自动切换到其他函数或者方法,执行别的任务。:下载多个图片(会存在网络IO)
2024-08-11 18:48:15
502
原创 Python异步编程1
当前随着GO的强势性能影响,异步非堵塞,asyncio,fastAPI,django3X的asgi都在向异步趋势发展,能够提升性能。:协程在计算机中不是真实存在的,真实只存在线程和进程。协程也称为微线程,通过用户态,上下文切换的方式,程序员人为创造的一种技术。具体表现为:协程就是用一个线程在代码之间切换游走的运行方式。含yield的就是生成器函数,伪造的切换比较牵强,可以满足,但是现实不会使用,只进行了解即可。实现协程的方式主要要4种:当前主要使用greenlet和async,await。
2024-08-11 18:47:34
258
原创 Python:单例 - 模块的方式
Python天然支持单例模式。原理:文件A,编写类,并且实例化。文件B,导入A中对象s,分别取不同的别名,就是产生了不同的对象,但是内存地址此时一样。即:完成了单例模式。
2024-08-11 18:43:48
430
原创 Python:functools.lru_cache函数缓存示例
functools.lru_cache 是 Python 标准库中的一个非常实用的工具,它用于缓存函数的返回值,以提高程序性能。本文将介绍如何安装和使用 lru_cache,并通过函数式和面向对象的方式给出简单的示例。:lru_cache 的 maxsize 参数控制缓存的大小。如果函数的行为取决于外部状态或依赖的输入数据变化,可能需要手动管理缓存失效或使用其他缓存策略。:lru_cache 在多线程环境下是线程安全的,但需要确保被缓存的函数本身是线程安全的。:自动管理缓存,减少手动实现缓存逻辑的需要。
2024-08-11 13:27:29
399
原创 Python:省略号...的食用说明和技巧
在实际编程中,确保用省略号标记的部分最终得到实现。:使用省略号时,最好在代码中添加注释,以说明待实现的功能或逻辑,这有助于团队协作和代码的可读性。:在调试过程中,可以使用省略号帮助定位代码块,但在测试和生产环境中,确保省略号被实际代码替代。4、增加代码可读性:增强代码的可读性,通过明确标记未完成的部分,使代码意图更加清晰。5、其他特殊用法:在特定库或框架中,省略号也可以用于特殊功能或用作特定语法的一部分。1、充当占位符:在开发过程中,省略号可以用作占位符,标记尚未实现的功能或代码块。
2024-08-11 13:25:30
1290
原创 Python:50个代码优化案例 - 甲篇
优化Python代码可以显著提升程序的性能、降低资源消耗,并提高可维护性。通过优化代码可以使程序运行更快、减少内存和计算资源的使用,同时提升用户体验并增强系统的扩展性。常见的优化方法包括算法优化、减少重复计算、代码重构、利用内置函数及并行处理。优化过程需平衡性能与可读性,以确保代码在提升效率的同时仍保持清晰和易于维护。
2024-08-11 13:23:51
1350
原创 生成RSA公钥的n值
RSA算法是一种非对称加密算法,与对称加密算法不同的是,RSA算法有两个不同的密钥,一个是公钥,一个是私钥。原理是:根据数论,寻求两个大素数比较简单,而将它们的乘积进行因式分解却极其困难,因此可以将乘积公开作为加密密钥。RSA公开密钥密码体制是一种使用不同的加密密钥与解密密钥,“由已知加密密钥推导出解密密钥在计算上是不可行的”密码体制。RSA允许选择公钥的大小。512位的密钥被视为不安全的;768位的密钥不用担心受到除了国家安全管理(NSA)外的其他事物的危害;:编辑 vim key_n.py。
2024-07-28 22:36:54
393
原创 CI/CD:Job failed: execution took longer than 1h0m0s seconds
当在CI/CD配置运行Gitlab-runner流水线中,一般默认情况下,Job的执行时间默认为1小时,如果超出1小时,任务会中断。:前往CI/CD Settings 修改Timeouts默认参数。:必须为10分钟或更长时间,且不超过一个月。
2024-07-28 22:35:19
310
原创 个人私藏的常用shell命令
ping + ip / ping + 网址:sudo apt install inetutils-ping。:工欲善其事必先利其器,一些高效的shell命令相关可以极大提升工作效率。匹配符合的行的个数:grep -a -i “hg” myfile.log | wc -l。匹配符合的行:grep -a -i “hg” myfile.log。:在1运行后,2查出PID端口,并杀死PID进程。2、当前路径排序文件大小:du -sh ./telnet ip + 空格 + 端口。案例:安全性考虑谨慎使用。
2024-07-20 13:46:57
344
原创 校验deb、rpm、apt、yum安装文件完整性测试
RPM包管理员(简称RPM,全称为The RPM Package Manager)是在Linux下广泛使用的软件包管理器。RPM此名词可能是指.rpm的文件格式的软件包,也可能是指其本身的软件包管理器(RPM Package Manager)。RPM仅适用于安装用RPM来打包的软件,目前是GNU/Linux下软件包资源最丰富的软件包类型之一。:deb包在Linux操作系统中类似于windows中的软件包(msi),几乎不需要什么复杂的编译即可通过鼠标点击安装使用。以htop为例,不完整时提示:遗漏。
2024-07-20 13:43:20
596
原创 pytest:4种方法实现 - 重复执行用例 - 展示迭代次数
在本文中,我们介绍了四种实现重复执行测试用例的方法,并显示当前迭代次数和剩余执行次数。希望这些方法能帮助你更好地进行测试管理,提高测试效率和代码稳定性。:在软件测试中,我们经常需要重复执行测试用例,以确保代码的稳定性和可靠性。在本文中,我们将介绍四种方法来实现重复执行测试用例,并显示当前迭代次数和剩余执行次数。这些方法将帮助你更好地追踪测试执行过程,提升测试效率。:在方法四中,我们使用了类变量来追踪迭代次数。:在大量重复执行的情况下,打印日志或控制台输出可能会影响性能。可以在每次迭代前重置测试环境。
2024-07-20 13:40:51
1017
原创 docker: No space left on device处理与迁移目录
工作中当遇到Docker容器内部的磁盘空间已满。可能的原因包括日志文件过大、临时文件过多或者是Docker容器的存储卷已满,需要我们及时清理相关文件,并对docker的路径进行迁移。
2024-07-20 13:32:05
641
原创 ClamAV:Linux病毒查杀软件安装使用
ClamAV是一个开源防病毒工具包,专为邮件网关上的电子邮件扫描而设计。它提供了许多实用程序,包括一个灵活且可扩展的多线程守护进程、一个命令行扫描程序和用于自动数据库更新的高级工具。该软件包的核心是以共享库的形式提供的防病毒引擎。支持扫描各主流文件格式,如zip、tar、img、png、iso、pkg、html、pdf、邮件附件等等。
2024-07-20 13:28:46
953
原创 conda:导出与创建环境快照
Conda还具有跨平台性,可以在不同的操作系统上运行,并且具有良好的环境隔离能力,使得在同一台机器上同时管理多个不同版本的Python和相关软件包成为可能。:确保使用的是兼容的 Conda 版本。: 确保 environment.yml 文件中指定的 Python 版本在目标环境中是可用的,并且与项目兼容。:使用Conda导出和创建Python开发环境的快照,可以轻松地解决在不同的机器上共享、备份和恢复工作环境。: 在导出环境时,确保所有的依赖项都已经安装并且在环境中正常运行。
2024-07-20 13:26:12
581
原创 Python-subprocess激活远程conda
subprocess.Popen() 需要使用 shell=True 参数,这样可以让它执行带有管道和重定向的命令,但要小心避免使用带有用户输入的命令,因为这可能会导致安全风险(例如,遭受命令注入攻击)。:在一些实现远程执行任务、自动化部署、测试或远程控制台等场景下,某些需要依赖于特定的 conda 环境,如何激活是指定conda环境,是一个值得探讨学习的地方。
2024-07-20 13:24:09
299
原创 docker应用:搭建云手机
近来慵懒,身体懈怠良多,思来想去随手看点小攻略以宽慰不懈怠的心。云手机Cloudphone,就是将云计算技术运用于网络终端服务,通过云服务器实现云服务的手机。其实就是深度结合了网络服务的智能手机,这类手机凭借自带的系统以及厂商架设的网络终端可以通过网络实现众多的功能。要检查虚拟化是否已启用。
2024-07-20 13:21:29
2303
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人