自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(26)
  • 资源 (1)
  • 收藏
  • 关注

原创 如何保证线程安全?

线程安全,即在多线程的环境下,可访问的全局变量和堆数据随随时都可能被其他的线程改变。因此多线程程序在并发时数据的一致性变得非常重要。

2022-07-05 14:08:44 1418 1

原创 多模块初始化解决方案

多模块初始化解决方案

2022-06-30 16:42:49 323

原创 tcl脚本实现登录终端并批量执行命令

大致需求是登录一个新的命令行,然后批量执行命令,但ip不同。本来打算用python写的,但是登录新的命令行需要安装pexpect包,由于需要在设备上跑,所以采用expect命令来实现登录功能,但是使用shell脚本配合expect命令登录传参特别不方便。每次下发命令需要重复登录,很麻烦,查资料得知expect脚本是采用的tcl脚本语言编写,因此我们采用tcl来写这个脚本运行chmod 777 demo.sh./demo.sh 1.1.1.1 1000第一次写tcl脚本,网上资料很少,有很多坑,比如{的

2022-06-09 15:10:57 863

转载 Ubuntu20无法安装g++

照着网上更新了国内的镜像源之后,安装g++会出现g++ : Depends: g+±7 (>= 7.4.0-1~) but it is not going to be installed这种报错。解决办法:从网上摘抄的源实际上是给ubuntu18.04使用的,系统代号为bionic,跟sources.list的bionic相对应。而ubuntu20的系统代号为focal系统代号可以通过lsb_release -a命令查看,将sources.list中的bionic改为focal

2021-07-22 15:10:42 1512 2

原创 模拟登录1-古诗文网

import requestsfrom lxml import etreefrom PIL import Imageimport pytesseracturl = 'https://so.gushiwen.cn/user/login.aspx'headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.438

2021-03-28 21:29:41 608

原创 有道翻译爬虫

import requestsimport hashlibimport timeimport randomimport jsonurl = 'http://fanyi.youdao.com/translate_o?smartresult=dict&smartresult=rule'def get_md5(value): md5 = hashlib.md5() md5.update(value.encode('utf-8')) return md5.hexdi

2020-09-07 09:42:51 949 3

原创 python自动发邮件

本文以qq邮箱为例首先需要进入邮箱打开设置选择设置中的账户开启smtp服务点击生成授权码发送短信完成后,复制生成的字符串待用# python 内置smtplib库支持发送邮件import smtplibfrom email.mime.text import MIMETextfrom email.header import Header# 实例一个邮箱对象# 邮箱我们以qq邮箱为例# 端口为465或者587,465为ssl加密,587为tls加密smtpObj

2020-06-14 19:34:32 225

原创 pycharm的terminal无法呼出

打开terminal没反应如图,尝试了好多方法,都无法解决这个问题,重装还是有这个问题,说明是自己电脑的配置问题。造成原因我们使用了中文的路径。解决办法将用户文件夹名改为英文路径(将C:/User/名字改为C:/User/xxx即可)因为直接是无法修改的,所以需要以下步骤。 1.进入注册表HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Profilelist,找到用户名对应的ProfileImagePath(即C:

2020-06-07 19:15:32 2684

原创 谷歌学术首页url爬取

小Demo因为涉及到js加密,所以写了练练手直接上代码import requestsimport reimport execjsurl = 'https://ac.scmor.com/'headers = { 'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.129 Safari/537.36', }

2020-05-16 12:54:45 1033

原创 爬虫匹配数据失败的原因

今天碰到一个匹配数据失败的问题,用谷歌浏览器的xpath插件,在网页上能匹配到数据,复制到代码中,匹配为空。解决办法将响应的代码保存下来,查看响应的html页面对应的位置有啥区别这里可以看到。我们得到的页面中跟网页上显示的有点不一致,网页上的是src,我们得到的是src2,所以修改我们的xpath选择器就可以匹配出我们需要的数据。总结这也算得上是一种反扒机制了吧,遇到问题不要慌,...

2020-05-06 17:20:16 534

原创 使用自定义的qss样式

qss样式每次写起来都很麻烦?你把它保存起来,每次需要的时候再读取,它不香吗?QFile file("xxxx");//这里是文件路径if(!file.open(QIOdevice::ReadOnly)){ return ;}QString styleSheet = tr(file.readAll());this->setStyleSheet(styleSheet);fil...

2020-04-21 23:21:10 142

原创 Qt实现查询是否有重复文件

每个文件都会有对应的MD5值,很多地方都是用这个来判断文件是否重复,来降低服务器的资源消耗。如某盘我们可以借助MD5的值来判断文件是否重复。1. 获取文件夹下的所有文件路径QStringList Widget::getFiles(const QString &path){ QStringList ret; QDir dir(path); //QDir::Di...

2020-04-20 01:26:12 1057

原创 Qt实现组件的阴影效果

代码很简单,效果很炫酷QGraphicsDropShadowEffect * shadow = new QGraphicsDropShadowEffect(); //渲染的像素点 shadow->setBlurRadius(30); //渲染的颜色 shadow->setColor(Qt::gray); //渲染相对于组件的偏移 sha...

2020-04-19 15:54:11 599

原创 Qt实现无边框可拖拽窗口

#include "widget.h"#include "ui_widget.h"#include <QHBoxLayout>Widget::Widget(QWidget *parent) : QWidget(parent), ui(new Ui::Widget){ ui->setupUi(this); //设置无边框 this-...

2020-04-19 15:34:53 590

原创 c++中的operator的作用

今天在看effective c++的时候,看到了一个奇怪的用法operator FontHandle()const{ return f;}这一下把我整懵了,在我的脑子里operator只能用于操作符重载啊,乍一看还以为是重载(),仔细一看,这函数没有返回值类型,而且只有一个括号,然后写了两个demo对比了一下。class demo {public: demo(int a) :a(a...

2020-04-18 21:43:46 1358 1

原创 python中的yield生成器

# 生成器 #什么是生成器(yield) #生成器就是一种自定义的迭代器 #为什么需要生成器 #生成器是用来返回多次值的一个工具,return只能返回一次值# 在函数内一旦存在yield关键字,调用该函数不会执行函数体# 而会返回一个生成器对象(其实就是自定义的迭代器对象)# 可以使用生成器对象.__next__()来获得返回值def f...

2020-04-15 15:19:13 178

原创 python的有参装饰器

# 有参装饰器 #为什么需要有参装饰器 #前面的学的装饰器的作用是给原函数增加新功能 # 但是当有多个函数需求同样的功能时,又需要一些参数进行区分 # 这时候以前的装饰器就无法解决这个问题了# 比如下面的例子,想在原函数的基础上加上账号密码判断的功能# def outter(func):# def warpper(*arg...

2020-04-15 12:12:49 100

原创 python的装饰器详解

# 装饰器的引入 # 为什么叫装饰器 # 在原来的函数的基础上装饰(添加)新功能的工具 # 装饰器有什么作用 # 在原函数的基础上添加新功能,而不修改的原函数# 举个例子# 在index函数的基础上进行测试程序执行时间的功能import time# def index(x,y):# time.sleep(2)# pri...

2020-04-14 22:32:09 139

原创 编码解码问题

在很多时候我们会碰到编码问题。、编码问题无非两种1. 存盘时出错例如在编写文本文件时,我们用到了日文和英文,(在编辑器中显示正常,是因为,内存中采取的是unicode编码,兼容所有字符)但是我们保存文本文件是确是用了GBK(只支持中文和英文)编码保存的,这时候就会出现保存出错。解决方法:存盘时,使用与编写文本文件兼容的编码进行保存。如上面的例子,我们在存盘时可以以shift_jis(支...

2020-04-13 17:42:28 149

原创 操作系统的启动流程

操作系统的启动流程1.计算机加电2.从ROM中拿出BIOS程序开始运行,检测硬件:cpu,内存,硬盘3.BIOS读取COMS存储器中的配置信息,选择启动设备4.从启动设备上读取第一个扇区的内容(MBR主引导记录512字节,前446字节为引导信息,64为分区信息,最后两位为标志位)5.根据分区信息读入bootloader启动装载模块,启动操作系统6.然后操作系统询问BIOS,以获得配置...

2020-04-10 12:21:49 1322

原创 C++实现split函数

借助正则实现split函数int split(string str,vector<string> &v,string tag=' '){ //拼接正则表达式 string reStr = "[^" +tag+ "]+"; //构建正则对象 regex re(reStr); //获取指向字符串开头的正则迭代器 sregex_ite...

2020-04-09 15:54:15 705

原创 windows下安装libcurl

windows下安装libcurl1.下载libcurl下载地址2.解压3.添加到环境变量先添加%CURL_HOME%l386再添加解压后的文件夹的bin目录(这里改成你自己的路径)C:\Users\黑啤\Downloads\curl-7.69.1_1-win64-mingw\curl-7.69.1-win64-mingw\bin记得保存## 3.进IDE添加依赖...

2020-04-01 21:33:01 5932

原创 某鱼弹幕抽奖脚本

斗鱼弹幕抽奖脚本使用步骤安装seleniumpip install selenium安装chromeDriverchromedriver的版本一定要与chrome的版本一致在chrome浏览器中输入chrome://version/下载地址http://npm.taobao.org/mirrors/chromedriver/解压压缩包,找到chromedrive...

2020-04-01 20:38:03 5285 6

原创 Python爬取内容为空的情况

此次爬取网址:https://www.douyu.com/g_DNF爬取内容:主播名字,主播热度由于有两个相同的DyListCover_info信息,所以选取了DyListCover-hot这一行作为正则的前缀界定正则:在爬取时内容时,发现爬取内容为空,于是我扩大了正则范围然后将爬取的数据打印一条出来发现<span class="DyListCover-hot"这多了个i...

2020-03-02 13:09:10 5350

原创 为什么需要虚析构函数(超详细)

为什么需要虚析构函数(超详细)虚析构函数是为了解决父类指针指向子类对象时,释放子类对象的资源时,释放不完全,造成的内存泄漏问题。多态发生多态的条件是,父类指针或引用指向子类对象,虚函数重写。子类会继承父类对象的所有的成员变量和成员函数(除了构造,析构,拷贝构造和赋值操作运算符)。分析发生继承后,子类的成员函数比父类多,所以父类指针无法指向子类的成员变量或者函数。即父类指针无法指向子类的...

2019-11-29 11:54:53 3575

原创 QtableWidget实现显示MySql数据库表

1.初始化QtablewidgetQSqlQuery query; int row =0; int columns = 0; //初始化行数 QString sql = QString("select count(*) as row from student"); query.exec(sql); if(query.first()) { ...

2019-06-27 21:41:35 9184 13

Win64OpenSSL-1_1_0L.exe

OpenSSL 是一个安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及SSL协议

2020-04-01

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除