python
python
KjPrime
欢迎讨论加个人QQ:1840599574
展开
-
Python实现国密GmSSL
首先我是找得到的gmssl库,经过实操,发现公钥与密钥不能通过pem文件得到,就是缺少导入pem文件的api。这个库的私钥与密钥是16进制的字符串编码,如果是想用这个,我就推荐几个网站吧。在线生成SM2的密钥对的网站gmssl因为我是需要需要通过pem导入的,所以这种方法不适合我。原创 2024-05-21 00:11:42 · 1610 阅读 · 6 评论 -
python-pdf的去水印操作
python-特殊pdf的去水印操作为什么做出这个?原理特色成果安装依赖代码想法参考文献为什么做出这个?就是有时候从网上下载的资料中的pdf有水印,看着不舒服。比如说我从网上下载的试卷,然后去打印店打印,打印之后水印看着很不舒服,而去水印wps要会员,而我是一个程序员,为什么不做一个呢,何乐而不为。虽然最后是做出来的,但是还是有限制。原理把pdf转化为图片,然后将图片去水印。图片去水印,是又条件限制的,必须水印的颜色和pdf中文字的颜色的rgb相差很大,然后把水印的颜色改变成背景颜色。原创 2022-03-31 17:04:33 · 3002 阅读 · 0 评论 -
python-普通pdf的添加水印
python-普通pdf的添加水印创建需要的水印模板wps创建输出pdfpython配置安装依赖代码问题感悟创建需要的水印模板wps创建输出pdf水印pdfpython配置安装依赖pip install PyPDF2代码import osfrom PyPDF2 import PdfFileReader as prfrom PyPDF2 import PdfFileWriter as pwdef write_watermark(watermark_pdf_path: s原创 2022-03-29 15:00:18 · 1985 阅读 · 2 评论 -
python-文字pdf转换为图片pdf
为什么会做这个?因为我们把word转化为pdf,wps默认转化为文字pdf,而图片pdf要会员。网上确实也有网站可以实现免费的,但是未必安全。思路我看了网上的很多代码,都是先把文字pdf先转化为图片,然后再组装成pdf文档。我的思路也是这样的。但是我和他们很大的不一样就是,我不需要先把图片保存起来再提取,而我只需要把图片的信息先存起来,再输出pdf。代码import osimport fitzdef single_wordpdf_to_imgpdf(pdf_path: str)原创 2022-03-25 17:28:50 · 861 阅读 · 0 评论 -
python-计算文件夹里面的视频总时间
为什么想做这个有时候学习的时候,离线看视频,想知道总视频的时间,从而盘算好每天看多少个视频,或者每天看多久。代码展示先安装moviepy依赖pip install moviepy代码import osfrom moviepy.editor import VideoFileClip as vfcimport timedef folder_movie_files(folder: str) -> list[str]: # 一个文件夹里面有多少视频文件 movie原创 2022-03-24 19:06:22 · 1995 阅读 · 4 评论 -
python-计算文件夹里的.pdf文件的总页数
为什么做这个?因为有时候我们需要打印,需要知道自己的总页数然后算钱。如果有word,毕竟去打印店,转化为.pdf打印好些。代码展示先安装PyPDF2依赖pip install PyPDF2代码from PyPDF2 import PdfFileReader as primport osdef single_pdf_count(pdf_path: str) -> int: #计算单个pdf的页数 count = 0 try: f =原创 2022-03-24 17:25:17 · 1793 阅读 · 0 评论 -
python有序字典
想要搞清楚有序字典概念:有序字典是可以按字典中元素插入的顺序来输出,此有序不是按从小到大的有序。为什么要出现有序字典这个概念呢,因为字典{}的输出是无序。字典的无序是指数据存进字典的顺序跟取出字典的顺序不一致。collections模块中的OrderedDict是用双向链表写出来的。代码而我因为字典{}既然无序,且列表就是有序咯。我不是用双向链表写的,效率比较低我用列表和元组实现的class OrderedDict: orderSet = [] def __s.原创 2022-02-20 23:30:41 · 4840 阅读 · 0 评论 -
torch的常用数据操作
torch的常用数据操作常用方法torch.arange(num[, dtype=torch.float32]) # 返回一个数据种类dtype且长度num的一维向量.shape # 返回张量的形状.numel() # 返回张量的元素个数.reshape(tuple) # tuple整数元组;返回一个形状为tuple的张量torch.zeros(tuple) # 返回一个元素值全为0且为tuple的张量torch.ones(tuple) # 返回一个元素值全为1且为tuple的张量torc原创 2022-02-19 16:20:46 · 2482 阅读 · 0 评论 -
修改pip命令的镜像
修改pip命令的镜像这两条命令解决pip config set global.index-url "https://mirrors.aliyun.com/pypi/simple"pip config set install.trusted-host "mirrors.aliyun.com"其中index-url是表示下载镜像,trusted-host就是https的证书。国内镜像地址阿里云:http://mirrors.aliyun.com/pypi/simple/中国科技大学:h原创 2022-01-20 09:56:10 · 1521 阅读 · 0 评论 -
修改pip的缓存目录
修改pip的缓存目录直接在命令行窗口执行下面代码pip config set global.cache-dir "E:\Cache\PythonCache\pipcache"其中"E:\Cache\PythonCache\pipcache"是你需要保存pip缓存的目录猜你喜欢如何更改python中pip install的安装路径...原创 2022-01-20 09:48:41 · 1984 阅读 · 0 评论 -
如何更改python中pip安装路径
步骤第一步找到site.py->用软件打开site.py编写。python -m site -第二步,更改USER_SITE和USER_BASE的值,选择你需要的文件夹,类似于第二张图给的例子改,依葫芦画瓢。最后,pip安装的依赖,都会安装到USER_SITE和USER_BASE的目录中。备注查看USER_SITE和USER_BASE的值python -m siteUSER_SITE和USER_BASE的意思USER_BASE:用户安装依赖的配置目录US原创 2022-01-19 20:58:05 · 5565 阅读 · 1 评论 -
python实现用A*算法求解8数码问题
我的算法流程初始化open_list 和 close_list;将开始节点添加到open_list找到open_list最优的字典和索引如果最好的节点等于当前节点从终点开始逐步追踪父亲节点,一直找到开始节点返回找到的结果路径,算法结束如果最好的节点不等于当前节点将最小节点从open_list中删除将最小节点从添加到close_list中遍历最小节点所有的邻近节点如果该邻近节点在close_list中可以找到则continue如果该邻近节点在open_list中可原创 2021-08-22 14:02:56 · 3514 阅读 · 2 评论 -
python实现DES加密算法的ECB,CBC,CTR模式
python实现DES加密算法的ECB,CBC,CTR3中模式的加密和解密原创 2021-05-19 17:51:09 · 3177 阅读 · 2 评论 -
python实现A5/1算法
注: 根据老师所说,是当明文大于64位的时候,系统才循环生成密钥,如果小于64位,直接和随机产生的64位的二进制数进行异或即可。所以下面程序要进行微量更改才算正确。发送方Alice_send.py# Alice_send.pyimport random as r# 随机产生64位二进制数def rand64(): randstr64 = "" for i in range(64): randstr64 = randstr64 + str(r.randint(原创 2021-04-14 18:58:57 · 799 阅读 · 1 评论 -
阿里云Centos7下搭建Jupyter Notebook
阿里云Centos7下搭建Jupyter Notebook + 宝塔(排坑)第一篇文章的我后面的出错了,但是第一篇让我安装好了jupyter notebook,然后我就用了下面的教程来实现设置密码和启动。云服务器安装jupyter notebook实现远程用pythonnohup jupyter notebook --port 8080 --ip 0.0.0.0 --allow-root > jupyter.log 2>&1 &意思就是在8080端口打开运行ju.原创 2021-03-30 20:42:52 · 283 阅读 · 0 评论 -
python笔记11-类BIF
hasattr getattr setattr delattr原创 2021-03-23 22:50:29 · 117 阅读 · 0 评论 -
使jupyter中的cell显示行号
单个cell快捷键: Esc+L所有cell都显示点击View -> Toggle Line Numbers原创 2021-03-17 09:06:19 · 491 阅读 · 0 评论 -
python笔记10-类
面向对象编程对象 = 属性(静态 常量) + 方法(动态 函数)对象是类的实例特点封装:信息隐蔽技术继承:子类自动共享父类之间数据和方法的机制多态:不同对象对同一方法响应不同的行动公有和私有默认公有私有# 私有 伪私有class n: __a = '123'n = n()n.__aAttributeError Traceback (most recent call last)<ipython-in原创 2021-03-13 12:29:08 · 132 阅读 · 0 评论 -
python笔记9-异常
异常异常总结异常原因AssertionError判断语句(assert)失败AttributeError尝试访问未知的对象属性EOFErrorinput()读取到EOF却没有接收任何数据FloatingPointError浮点数计算错误GeneratorExitgenerator.close()方法被调用的时候ImportError导入模块失败的时候IndexError索引超出序列的范围KeyError字典中查找-一个不存原创 2021-03-06 08:43:39 · 140 阅读 · 0 评论 -
python笔记8-os,pickle模块
os模块函数名使用方法.getcwd()返回当前工作目录.chdir(path)改变工作目录.listdir(path=’.’)列举指定目录中的文件名( .表示当前目录,…表示上一级目录).mkdir(path)创建单层目录,如该目录已存在抛出异常.makedirs(path)递归创建多层目录,如该目录已存在抛出异常,注意: 'E:\a\b和’E:\lal\c’并不冲突.remove(path)删除文件.rmdir(path)删除单层目原创 2021-03-05 23:16:36 · 176 阅读 · 0 评论 -
python笔记7
文件open(path [, mode[, buffering]])path 就是路径mode 就是打开模式buffering 一般不用第3个参数,我也不知道啥用处官网解释:如果 buffering 的值被设为 0,就不会有寄存。如果 buffering 的值取 1,访问文件时会寄存行。如果将 buffering 的值设为大于 1 的整数,表明了这就是的寄存区的缓冲大小。如果取负值,寄存区的缓冲大小则为系统默认。模式执行操作‘r’读的方式打开文件(默认)原创 2021-03-05 15:25:15 · 102 阅读 · 0 评论 -
python笔记6
递归调用函数自身设置了正确的返回条件例子求阶乘def fun2(n): if n == 1: return 1 else: return n * fun2(n-1)fun2(5)斐波那契数列def fun4(n): if n < 1: print("error") return -1 if n == 1 or n == 2: return 1原创 2021-02-21 21:22:18 · 138 阅读 · 0 评论 -
python笔记5
函数python是用def关键字来定义函数的def output(): print("666")output()666带参数def fun(name): print(name + "5555")fun("666")6665555返回值# 形参 就是定义函数时的参数如add(a, b)中的a, b# 实参 就是引用函数时的参数如add(11, 12)中的 11, 12def add(a, b): return a + ba = add(11,原创 2021-02-10 14:01:15 · 233 阅读 · 1 评论 -
python笔记4
序列函数序列包括 列表,字符串, 元组list()转换成列表len() 序列长度max() 序列中最大min() 序列中最小sum(iterable[, start = 0]) 总和x = [3, 9, 6]sum(x, 155) # x+155sorted(x) list.sort() 一样reversed(x) 返回是一个对象 list.reverse()x = [3, 9, 6]reversed(x)<list_reverseiterator at 0x180原创 2021-02-09 19:56:00 · 205 阅读 · 1 评论 -
python笔记3
元组逗号是构成元组的基本条件元组是不可变的 不能修改对象本身支持切片 count() index()+ *也是可以的支持嵌套 和列表循环一致支持列表推导式 不支持元组推导式一个元素的元组tu = (4,)解包 赋值# 左边序列名变量,必须和右边序列元素数量一致# 生成一个元组,也可以叫做元组的打包p = (5, '455', 3.44)x, y, z = p #也支持列表 也支持字符串type(x), type(y), type(z)(int, str, float)原创 2021-02-09 14:23:26 · 208 阅读 · 1 评论 -
python笔记2
列表列表可以容纳不同数据类型lb = [1, 2, 3, 4, 5, 'dddddd']下标索引获取元素的值lb[0]len()获取列表长度索引正索引012344复索引-6-5-4-3-2-1值12345‘dddddd’#最后一个元素len1 = len(lb) lb[len1 - 1]'dddddd'lb[-1]'dddddd'列表切片lb[0:3][1, 2, 3]lb[3:6][4原创 2021-02-08 23:55:06 · 192 阅读 · 1 评论 -
python笔记1
变量、字符串_string、运算符、random模块、数字类型、decimal模块、布尔类型、逻辑运算符、工程项目、分支和循环、原创 2021-02-07 23:35:49 · 244 阅读 · 4 评论 -
python如何读取xlsx文件中的数据
第一步安装xlrd模块直接在终端(cmd窗口)安装即可pip install xlrd第二步导入xlrd模块# 常用功能import xlrd# 打开实验数据表格book = xlrd.open_workbook('./data/book.xlsx')# 选择页数为第1页sheet1 = book.sheets()[0]# 数据总行数nrows = sheet1.nrowsprint('数据总行数:', nrows)# 数据总列数ncols = sheet1.ncolsp原创 2020-06-29 16:51:52 · 20259 阅读 · 3 评论