- 博客(42)
- 资源 (3)
- 收藏
- 关注
原创 paramiko连接服务器报错“Unable to agree on a pubkey algorithm... “及解决办法
paramiko 连接linux报错 "Unable to agree on a pubkey algorithm"
2023-12-27 17:55:04
958
1
原创 依据国标文件使用Python生成GB18030-2022的全部码位
GB8030-2022即将正式实施,包含单字节、双字节和四字节,如何使用Python生成相应的码位信息,来看看这片文章 吧
2023-06-08 15:46:06
2507
原创 Antlr4 语法存在错误但语法分析器不报错的问题
最近使用Antlr4时,遇到了编写的,只是将报错位置及之后的全部token丢弃的情况。在此对案例进行分享,并分享一下我的解决方案。
2022-09-28 17:02:51
7084
原创 Python 线程同步的三种方式
我们使用多线程的目的通常是并发的运行单独的操作,但有时候也需要在两个或多个线程中同步操作。在Python中,线程同步有多种方式,包括Event、Condition和Barrier
2022-06-24 11:06:55
5554
原创 Python连接GBase 8s数据库(通过DBAPI2)
Python中为了规范数据库访问的一致性,定义了DBAPI2.0,详情见PEP-0249。依据此API规范,JPype的DBAPI2模块进行了很好的实现。JPype的DBAPI2是通过访问JDBC来实现DBAPI2.0接口,所以可以通过JDBC连接的数据库,它都能连接。...
2022-06-10 18:07:41
7437
2
原创 python + sklearn实现手写数字识别
一、数据集训练用的数据集使用的是sklearn框架中内置的数字数据集, 共 1797条数据,每条数据由64个特征点组成import numpy as npfrom sklearn import datasetsdigits = datasets.load_digits() # 加载数字样本X = digits.data # 特征数据y = digits.target # 标签print(X.shape)print(X[0])print(np.array(X[0]).reshape(
2022-05-24 11:37:00
10432
7
原创 Linux userdel 删除用户失败
今天在国产操作系统【凝思磐石60】上进行用户的添加删除操作时,使用useradd删除用户时遇到用户删除失败,并返回"usermod:无改变"的情况,在这里记录下分析结果,分享给遇到同样问题的朋友们~问题重建步骤添加一个新用户,结果成功 useradd xiaoming删掉该用户,没有报错 userdel xiaoming再次添加用户xiaoming, 报用户已存在"useradd : user ‘xiaoming’ already exists": useradd xiao
2022-05-11 14:16:25
5263
原创 (Antlr4 4-2)利用监听器构建一个翻译程序(Python语言实现)
本节实现将Java类中的全部方法抽取出来,生成一个接口文件,使用监听器的方式。访问器与监听器的最大区别在于:监听器的方法会被ANTLR提供的遍历器对象自动调用而访问器中,必须显示的调用visit方法来访问子节点。忘记调用的后果就是对应的子树将不会被访问。语法文件005/Java.g4grammar Java;classDeclaration : 'class' Identifier classBody ;methodDeclaration : datatype
2022-04-24 16:36:48
3916
原创 (Antlr4 4-1)利用访问器构建一个计算器(Python语言实现)
先来编写一下语法, 并标记备选分支语法文件004/LabeledExpr.g4grammar LabeledExpr;import CommonLexerRules;prog : stat + ;stat : expr NEWLINE # printExpr | ID '=' expr NEWLINE # assign | NEWLINE # blank ;expr
2022-03-28 09:16:20
1211
原创 (Antlr4 3-2) 构建语言类应用程序(python语言实现)
这一节,我们要将Java中,类似{99, 3, 451}的short数组翻译成"\u0063\u003\u01c3".为了完成这项工作,最简单的方案是使用ANTLR内置的语法分析树遍历器进行深度优先遍历,然后在它触发的一系列回调函数中进行适当操作。语法文件请参考 上一节002/ShortToUnicodeString.pyfrom ArrayInitParser import ArrayInitParserfrom ArrayInitListener import ArrayInitListe
2022-03-21 13:45:06
1270
原创 (Antlr4 3-1) 将生成的语法分析器与Python程序集成
前提安装python环境下的antlr运行时库pip install antlr4-python3-runtime准备文法文件002/ArrayInit.g4grammar ArrayInit;init : '{' value (',' value)* '}' ;value : init | INT ;INT: [0-9]+ ;WS: [ \t\r\n] -> skip ;将文法文件转换为Python语言的词法分析器和语法分析器cd 00
2022-03-16 14:45:57
1512
原创 (Antlr4 2-4) 监听器与访问器
ANTLR的运行库提供了两种遍历树的机制:语法分析树监听器与访问器。通过它们,我们可以在遍历树的时候实现相应逻辑。监听器:使用监听器时,需要继承Listener类,类的方法会被antlr提供的遍历器对象(比如ParseTreeWalker)自动调用。ANTLR为每个语法文件生成一个ParserTreeListener的子类,在该类中,语法中的每条规则都有对应的enter和exit方法,例如:ORACLEListener.py# This class defines a complete lis
2022-03-06 16:29:03
705
原创 (Antlr4 2-3) 使用语法分析树构建语言类应用程序
构建语言类应用程序,最简单的方式是操作语法分析器自动生成的语法分析树。ANTLR在识别和建立语法分析树的过程中使用的数据结构和类名 如下:词法分析器处理字符序列并将生成的词法符号提供给语法分析器,语法分析器随即根据这些信息来检查语法的正确性并建造一颗语法分析树。这个过程对应的ANTLR类是 CharStream、Lexer、Token、Parser,以及ParserTree连接词法分析器和语法分析器的“管道”就是TokenStream,下图展示了这些类型对象在内存中的交互方式ANTLR尽可能多的使
2022-03-06 16:22:01
537
原创 Python 从ZIP中加载Python代码
最近开发应用遇到一个需求:打包后的应用加载外部Python模块使用常用import方式导入模块,在使用pyinstaller打包后,模块也一起打包进去了,这样在我外部模块代码修改后,还需要重新打包。为了实现这个需求,我使用了zipimport从ZIP归档中加载Python模块示例代码如下:zipfile = "data_factory.zip"importer = zipimport.zipimporter(zipfile)factory = importer.load_module('data
2022-02-22 17:32:34
664
原创 Antlr4识别包含引号转义字符串格式
我要识别的字符串格式是使用单引号或双引号引起来的一个字符序列,如"hello world"或'hello world'Antlr4可以这样写词法规则QuotedString: DoubleString | SingleString ;fragmentDoubleString: '"' .*? '"' ;fragmentSingleString: '\'' .*? '\'' ;但是,当我的字符串中存在转义的引号时,上边的词法规则是无法正确识别的,如"hello \"world\"
2022-02-15 15:47:43
1520
原创 Antlr4将关键字作为标识符使用
在定义词法文件时,需要先定义关键词,再定义标识符的规则,例如如下边这个示例//匹配关键字CREATEK_CREATE: 'CREATE' ;//匹配标识符--字母数字下划线组成的字符串,但必须字母或下划线开头ID: [a-zA-Z_]+[a-zA-Z0-9_]* ;在语法文件中,我们定义一个变量名的语法,而变量名规则就是标识符varName: ID ;这时候会出现一个问题:当使用"CREATE"作为varName时是无法被识别的,虽然它满足词法"ID"的规则,原因是"CREATE"被识别成
2022-02-12 10:08:49
662
原创 解决Linux vim 打开文件乱码问题
使用vim打开gb18030编码的文件时,中文显示乱码,如下:修改为指定gb18030编码打开后,显示正常vim sql01.act -c "e ++enc=gb18030"
2022-02-09 11:07:41
5325
原创 CentOS 运行Qt程序报错及中文显示为小方框问题
基于pyqt5开发了GUI程序,想要在x86架构下的CentOS7系统下使用pyinstaller打包成可执行程序并运行,打包比较顺利,但运行时报错了,这里记录下问题解决过程。报错信息如下:qt.qpa.plugin: Could not load the Qt platform plugin "xcb" in "" even though it was found.This application failed to start because no Qt platform plugin could
2022-02-08 18:09:02
5000
原创 PyQt5使用总结
最近用pyqt5开发了一个GUI小程序,在此做下总结~安装安装pyqt5和pyqt5-toolspip install pyqt5pip install pyqt5-tools在PyCharm中集成PyQt因为我使用PyCharm开发,所以将PyQt集成进去来提高效率, 操作步骤如下1.打开【File->Settings->Tools->External Tools】2.点击“+”号按钮,添加“designer”说明:Program的内容是:D:\PythonPr
2022-01-26 13:47:32
1089
原创 pyinstaller 打包可执行程序,界面左上角图标丢失
使用PyQt5开发了一个GUI小程序,并使用pyinstaller打包成了一个可执行程序。但程序运行之后发现界面左上角的图标丢失…打包前明明是正常的哇/(ㄒoㄒ)/~~验证过程table.png和当前py文件处于同一个目录,使用的相对路径self.setWindowIcon(QtGui.QIcon("table.png"))此时运行程序,打开界面后左上角图标正常显示。开始使用pyinstaller打包,执行如下命令pyinstaller -F -w -i table.ico TDTool.py
2022-01-22 17:24:42
5552
2
原创 Python实现Antlr文法转语法图(铁路图)
在网上找了很久Antlr文法转语法图的工具也没有找到,只能自己写一个了,效果还不错~先看下效果,语法定义如下:ref_cursor_type_definition : TYPE type IS REF CURSOR (RETURN ((db_table_or_view | cursor | cursor_variable) '%' ROWTYPE | record PERCENT TYPE | record_type | ref_cursor_type))? ';'
2022-01-05 15:50:28
7239
2
原创 Python实现通过光源控制鼠标移动
俺也没玩儿过体感游戏…想着要是能够在远处控制鼠标就好了,于是就萌生了一个初步的想法:使用光源例如手电筒控制鼠标的移动,对着电脑屏幕,我往左挥,鼠标就往左移,往右挥,就往又移动…实现方案获取电脑摄像头的图像,跟踪光斑位置,并转化为电脑屏幕坐标移动鼠标到该位置环境准备目标跟踪可以用opencv实现pip install opencv-python鼠标控制可以用pyautogui实现pip install pyautogui开始codingfrom multiprocessing im
2021-12-28 17:00:34
7328
2
原创 Python写文件 -- 实现写入内容实时落盘
用python写文件真的不要太简单,也是自己工作中常用的with open('1.txt', 'w') as f: f.write('xxxx')但这种方式通常在文件写完,即隐式调用了close()方法之后才会生成文件我当前需要每写完一行数据,就在文件中立刻看到,即写入内容实时落盘,该怎么办?方法一查了下open()方法,发现通过参数(buffering)可以实现:def open(file, mode='r', buffering=None, encoding=None, errors=N
2021-12-20 14:12:44
5782
原创 Python虚拟环境管理
我们开发Python项目时,多个项目可能用到不同的Python版本,或是包的不同的版本。为了让每个项目运行的Python环境互不影响,我们需要为每个项目创建Python虚拟环境。虚拟环境之间是互相隔离的,所以我们不用担心项目A中python环境的变动会影响到项目B如下图所示Linux下创建虚拟环境创建虚拟环境可以使用virtualenv,使用pip安装即可pip install virtualenv开始创建, 下边创建了一个名称是my_project_env的虚拟环境,解释器用的是python
2021-12-19 19:28:55
935
原创 Python实现让程序运行在指定CPU上
可以使用第三方包psutil实现pip install psutil写个Demo在win10上验证下效果# coding: utf-8import psutil# 写个斐波那契数列计算函数,用于消耗cpu资源def fibbo(number): if number <= 2: return 1 else: return fibbo(number - 1) + fibbo(number - 2)# 获取逻辑cpu的数量count
2021-12-15 14:19:56
12977
2
原创 Python中isinstance函数使用注意事项
isinstance函数用于判断某个对象是不是某个类的实例,例如:>>> isinstance('helloword', str)True但如果类是通过type函数动态生成的,使用时要注意,看下边的列子:def create_class(cls_name: str): return type(cls_name, (), dict())if __name__ == '__main__': a = create_class("MyClass")() B
2021-12-13 15:38:21
3409
原创 通过SQL操作Excel(基于Python + Antlr实现)
ANTLR工具本身是用JAVA语言编写的,想要在Python环境中使用,需要进行简单的环境准备,参考:Python中使用Antlr4的环境准备实现功能创建数据库:通过create database语句创建一个excel文件创建表:通过create table语句新增一个sheet删除表:通过drop table语句删除指定的sheet插入数据:通过insert into table语句向sheet中插入数据删除数据:通过delete from table语句删除sheet中符合条件的行更新数
2021-12-13 10:36:34
8019
原创 (Antlr4 1-1)Python中使用Antlr4的环境准备
准备Java环境,以下是我的Java版本,运行环境是win10当然,你更要又Python3环境…C:\Users\aaa>java -versionjava version "1.8.0_112"Java(TM) SE Runtime Environment (build 1.8.0_112-b15)Java HotSpot(TM) 64-Bit Server VM (build 25.112-b15, mixed mode)下载ANTLR tool下载地址:https://www.a
2021-12-09 14:54:35
6159
原创 Python连接GBase 8s数据库(通过ODBC)
Python连接GBase 8s数据库有多种方式,比如可以通过JDBC连接,这里介绍Python如何通过ODBC连接GBase 8s数据库。1、配置GBase 8s数据库ODBC数据源Python通过ODBC连接GBase 8s数据库,首先要进行ODBC数据源的配置,参考 GBase 8s ODBC数据源配置2、Python环境安装pyodbcpip install pyodbc3、开始codingimport pyodbcdsn = "DSN=gbaseserver1"conn=pyo
2021-12-08 09:40:55
8112
原创 Linux环境下配置GBase 8s数据库ODBC数据源
1、检查是否安装了unixODBC[root@a]# odbcinst -junixODBC 2.3.1DRIVERS............: /etc/odbcinst.iniSYSTEM DATA SOURCES: /etc/odbc.iniFILE DATA SOURCES..: /etc/ODBCDataSourcesUSER DATA SOURCES..: /etc/odbc.iniSQLULEN Size.......: 8SQLLEN Size........: 8SQLS
2021-12-07 10:36:22
7555
antlr转语法图工具.rar
2022-01-05
MQ客户端,配合JMeterAMQP.jar使用
2018-11-04
JMeter-RabbitMQ插件包
2018-11-04
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人