目录

AaronJny

诗酒繁华,书剑天涯。

标签: python (11)

xyolo?几行Python代码轻松完成yolo3目标检测

前段时间在 qqwweee/keras-yolo3 的基础上改写出了一个支持 TensorFlow 2.2 版本的 yolo3 项目,我把它命名为tf2-keras-yolo3。 怎么说呢,用是肯定能用的,但操作步骤太过繁琐和反人性化,自己用起来嫌麻烦,别人用起来上手也有一定难度,于是,我萌生了重构并打包它的想法。 于是,就有了xyolo~ xyolo可以通过 pip 一键安装,而且使用起来非常简单,只需要几行代码就可以训练自己的 yolo3 模型,或者调用训练好的模型进行目标检测。废话少说,一起来看一下吧! GitHub 地址:https://github.com/AaronJny/xyolo 转载请注明来源:https://www.aaronjny.com/articles/2020/11/08/1604823112022.html 写在前面: 我使用的 Python 是 Anaconda 的 Python 3.7 发行版本,在 shell 里面进行了初始化(python 和 pip 默认指向当前激活环境,而不是默认的 python2),所以文章中的 python 和 pip ....

在kindle上阅读网络小说的正确方法——Kindle网文助手

起源 kindle 是个好东西啊,如果长时间阅读的话,kindle 的体验远胜于手机、电脑。亚马逊上有丰富的 kindle 电子书资源,但很遗憾,亚马逊上没有网络小说。手机起点又不支持推送到 kindle 阅读,如果偶尔先看看网文的话,那是真的有点淡疼…… 于是,就抽出几天零碎时间,写了个简单的小工具,我把它叫做 Kindle 网文助手。支持从网络上下载网络小说,并推送到 kindle 上阅读。 请注意,此项目不提倡盗版阅读,只因为手机起点看书费眼,也没有推送到 kindle 的途径,才萌生想法编写此项目。没有直接爬起点网站,是嫌起点反爬太多,太麻烦了(毕竟起点要面对那么多盗版网站的爬虫)。网文作者写书不易,有能力的朋友尽量订阅支持一下。 推荐如下操作: 选择一本想看的书 xxx => 打开起点,找到 xxx => 自动订阅 => 打开 kindle 网文助手,缓存 xxx => 推送到 kindle 阅读 如果真的没有闲钱,也请注册一下起点的账号,加一下收藏,投一下免费的推荐票,为你喜欢的小说点赞。写手不易,且行且珍惜。 随便写写的极简版本,比较简陋,凑合着用....

使用Python读取大文件

今天有个朋友问了我一个问题,如何使用 Python 读取大文件?觉得这个问题挺有意思的,就记录下来。 大部分时间我们处理小文件的时候(1g 以内?),可以直接用 f.read()或 readlines()直接把全部内容读取到内存里面来。但当文件非常大,比如 10g,100g 的时候,文件的大小一般已经超出了机器的内存大小,就没法直接按小文件的方式处理了。那应该怎么办呢? 首先,选一个文件做演示,就用上一篇博客的代码吧。我们现在有一个文件,名为replace_content.py。我们要做的事是读取并打印这个文件的每一行。这个文件可能太小了,但不影响我们演示大文件的读取。 一、读取小文件 我们先看一下读取小文件的时候是怎么做的: def get_lines(file_path): """ 给定一个文件路径,读取文件并返回一个迭代器,这个迭代器将顺序返回文件的每一行 """ with open(file_path, 'rb') as f: lines = f.readlines() return lines for e in get_lines('replace_content.py'....

使用Python脚本批量替换项目中的数据库地址

这几天接手到了一个很老很老的项目,PHP 的,里面的数据库地址不是同一配置的。有很多子站点,每个字站点又有自己的配置文件,这个时候,问题来了,要换数据库地址了!!! 初闻这个问题,我整个人都是懵逼的,这不是搞我嘛?这么多改起来得多麻烦? 但活儿还是得做啊,于是作为一名机智的大彩笔,我决定写个 Python 脚本解决这个问题。 当然,这个问题可以被简单理解为,给定路径 a,字符串列表 b,字符串 c,请将路径 a 下的全部文本文件(包括若干级子目录下的文本文件)中的字符串列表 b 中的全部字符串统一替换为字符串 c。 脚本编写如下: # -*- coding: utf-8 -*- # @File : replace_content.py # @Author: AaronJny # @Date : 2019/11/21 # @Desc : 给定路径a,字符串列表b,字符串c,请将路径a下的全部文本文件(包括若干级子目录下的文本文件)中的字符串列表b中的全部字符串统一替换为字符串c。 import logging import os from pprint import pprint imp....

使用Python3编写脚本一键备份MySQL数据库

假设,MySQL 的连接信息如下: host: 192.168.1.4 port: 3306 user: root password: mypassword 现在,我们需要对这台服务器上的数据库进行备份。从 MySQL 导出数据需要用到 mysqldump 工具,不论写不写 Python 脚本。 一、不编写 Python 脚本 备份全部数据库数据到一个 sql 文件(包括了 MySQL、sys、information_schema、performance_schema 等内置数据库): mysqldump -h192.168.1.4 -uroot -pmypassword -A > mysql_backup.sql 排除掉指定数据库,并备份其他所有数据库数据到一个 sql 文件: mysql -e "show databases;" -h192.168.1.4 -uroot -pmypassword | grep -Ev "Database|mysql|sys|information_schema|performance_schema" | xargs mysqldump ....

leetcode题解第29题 Divide Two Integers (两数相除)

题目的大意如下: 给定两个整数,被除数 dividend 和除数 divisor。将两数相除,要求不使用乘法、除法和 mod 运算符。返回被除数 dividend 除以除数 divisor 得到的商。 简单来说,就是需要在不借助 python 内部的乘、除、去余运算的情况下,实现整数除法运算,并返回运算的商的。余数忽略。 且在此之外,还有几点额外说明: 除数永远不会为 0。 被除数和除数都是 32 位有符号整数。 假设计算机只能存储 32 位有符号整数,所以你返回的结果应该在 [−2^{31}, 2^{31} − 1]范围内,否则就返回 2^{31} − 1。 样例输入 1: dividend = 10, divisor = 3 样例输出 1: 3 样例输入 2: dividend = 7, divisor = -3 样例输出 2: -2 如果不借助语言内置的乘除法,应该怎么做除法运算呢? 一个最简单的方法是——不停累加除数,直到它大于被除数为止。这时,累加的次数-1 就是商。 这个方法看起来很美好,但是当被除数很大,而除数很小时,按这个方法就需要计算非常多次,时间复....

根据公司名称生成base64 logo(python文字转图片)

最近碰到了一个需求,需要根据公司的名称,生成一个临时的 logo,并以 base64 图片的形式在网页上显示。这个问题拆解一下,可以分为如下两个问题: 显示什么?即公司名称中的哪一部分需要显示出来。 怎么显示?即怎么把文字转成图片,并处理好排版问题。 用 python 把文字转图片其实很好做,随便搜一下就能找到一大堆。我找到了一位大佬(Phodal Huang)的文字转图片的实现,本文中关于图片转文字的实现中有一部分参考了 Phodal Huang 大佬的实现(已和作者取得了二次开发的许可,且使用的字体为开源字体)。 参考文章介绍 文章地址:Python PIL 转换文字到Logo 实现效果: 因我这里有不少额外需求,且 Phodal Huang 大佬是用 Python2 实现的,而我要用 python3,很多地方都不兼容,所以只能作为参考。下面记录我的实现过程。 转载请注明来源:https://blog.csdn.net/aaronjny/article/details/100140271 一、对文本信息进行处理 程序的输入可能是公司的全称,如北京市xxxx科技有限公司,也....

进程管理工具Supervisor的安装和简单使用

一、Supervisor 是什么? 这是一个 GitHub 上 5686 star(截至 2019-09-30 13:57:24)的项目,下面给出项目在GitHub上的定义: Supervisor is a client/server system that allows its users to control a number of processes on UNIX-like operating systems. 翻译:Supervisor 是一个客户端/服务器系统,允许其用户控制类似 UNIX 的操作系统上的许多进程。 简单来说,Supervisor 就是一个 unix 系统上的进程管理工具,它允许程序后台运行,并提供完备的管理功能。 二、安装 Supervisor 需要使用 python 进行安装。 PS: Supervisor 现在已经支持 Python3 啦~! 用 pip 安装 Supervisor: pip3 install supervisor 三、配置 Supervisor 查找配置文件的顺序如下(越靠前越优先): 当前目录下的 supervisord....

使用python,在保留相对顺序的情况下,对列表去重

在开发工作中,难免会遇到需要在保留相对顺序的情况下,对列表进行去重的需求。今天,就简单讲一下这个。 “在保留相对顺序的情况下,对列表去重”是指什么?请看示例: 给定列表 1: a = [1,2,2,3,4,4,5,6,7,7] 去重后输出: [1,2,3,4,5,6,7] 给定列表 2: b = [3,3,1,2,9,5,6,6,3,9,8,'a',5,'c','a'] 去重后输出: [3,1,2,9,5,6,8,'a','c'] 大概就是这个意思。下面说几种实现思路。 1. 暴力 字面意思,无脑暴力处理,开一个新列表,用来保存去重后的数据。 def duplicate_v1(objs): # 开一个新列表,用来保存去重后的数据 res = [] # 遍历原始列表 for obj in objs: # 如果这个元素已经在新列表中了 if obj in res: # 就直接忽略,处理下一个 continue # 否则将该元素加入到新列表中 res.append(obj) # 返回新列表 return res 简单计算一下,假设n=len(objs)这个函数的时间复杂度为 O(n....

Java技能关键词纠错——计算两字符串最长公共子序列(动态规划)

前言 最近在做一项功能,需要自动从招聘文本中提取技能需求关键词。然而问题来了,请看下面这句招聘需求: 2、 熟练掌握 SpringMVC、Srping、Mybetis 或者 hibernate,熟悉 jQuery,EasyUI 或者 AngularJS; 稍微仔细点看,比较熟悉 Java 的兄 dei 可能已经发现了,WTF?Spring、MyBatis哭晕在厕所…… 是哪家公司的我就不说了哈,影响不好,可能就是单纯手误吧。 然而,我就需要多做一项工作——纠错。从招聘文本中提取的关键词,不能直接作为结果,还需要使用对可能的手误打错、粘贴漏字这些问题进行处理,对可能为错误的关键词进行纠正。 整体的思路是这样的: 1.我写了一个提取器,可以按照特定的规则从招聘文本中提取可能的关键词 2.我建立了一个小型的 Java 关键词库。但不属于这个词库的、可能的关键词,也能被 1 中的提取器识别出来。 3.对于所有提取的技能关键词,尝试和词库进行匹配(匹配时关键词和词库统一转成小写,避免大小写不一致产生的问题),如果匹配上了,说明这个词大概率没有拼写问题,跳过。 4.如果在 3 中没有匹配....

TensorFlow练手项目一:使用循环神经网络(RNN)实现影评情感分类

使用python2.7和tensorflow 1.4,编写循环神经网络实现一个影评情感分析的小Demo.