tcl脚本实现登录终端并批量执行命令 大致需求是登录一个新的命令行,然后批量执行命令,但ip不同。本来打算用python写的,但是登录新的命令行需要安装pexpect包,由于需要在设备上跑,所以采用expect命令来实现登录功能,但是使用shell脚本配合expect命令登录传参特别不方便。每次下发命令需要重复登录,很麻烦,查资料得知expect脚本是采用的tcl脚本语言编写,因此我们采用tcl来写这个脚本运行chmod 777 demo.sh./demo.sh 1.1.1.1 1000第一次写tcl脚本,网上资料很少,有很多坑,比如{的
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
模拟登录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
有道翻译爬虫 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
python自动发邮件 本文以qq邮箱为例首先需要进入邮箱打开设置选择设置中的账户开启smtp服务点击生成授权码发送短信完成后,复制生成的字符串待用# python 内置smtplib库支持发送邮件import smtplibfrom email.mime.text import MIMETextfrom email.header import Header# 实例一个邮箱对象# 邮箱我们以qq邮箱为例# 端口为465或者587,465为ssl加密,587为tls加密smtpObj
pycharm的terminal无法呼出 打开terminal没反应如图,尝试了好多方法,都无法解决这个问题,重装还是有这个问题,说明是自己电脑的配置问题。造成原因我们使用了中文的路径。解决办法将用户文件夹名改为英文路径(将C:/User/名字改为C:/User/xxx即可)因为直接是无法修改的,所以需要以下步骤。 1.进入注册表HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Profilelist,找到用户名对应的ProfileImagePath(即C:
谷歌学术首页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', }
爬虫匹配数据失败的原因 今天碰到一个匹配数据失败的问题,用谷歌浏览器的xpath插件,在网页上能匹配到数据,复制到代码中,匹配为空。解决办法将响应的代码保存下来,查看响应的html页面对应的位置有啥区别这里可以看到。我们得到的页面中跟网页上显示的有点不一致,网页上的是src,我们得到的是src2,所以修改我们的xpath选择器就可以匹配出我们需要的数据。总结这也算得上是一种反扒机制了吧,遇到问题不要慌,...
使用自定义的qss样式 qss样式每次写起来都很麻烦?你把它保存起来,每次需要的时候再读取,它不香吗?QFile file("xxxx");//这里是文件路径if(!file.open(QIOdevice::ReadOnly)){ return ;}QString styleSheet = tr(file.readAll());this->setStyleSheet(styleSheet);fil...
Qt实现查询是否有重复文件 每个文件都会有对应的MD5值,很多地方都是用这个来判断文件是否重复,来降低服务器的资源消耗。如某盘我们可以借助MD5的值来判断文件是否重复。1. 获取文件夹下的所有文件路径QStringList Widget::getFiles(const QString &path){ QStringList ret; QDir dir(path); //QDir::Di...
Qt实现组件的阴影效果 代码很简单,效果很炫酷QGraphicsDropShadowEffect * shadow = new QGraphicsDropShadowEffect(); //渲染的像素点 shadow->setBlurRadius(30); //渲染的颜色 shadow->setColor(Qt::gray); //渲染相对于组件的偏移 sha...
Qt实现无边框可拖拽窗口 #include "widget.h"#include "ui_widget.h"#include <QHBoxLayout>Widget::Widget(QWidget *parent) : QWidget(parent), ui(new Ui::Widget){ ui->setupUi(this); //设置无边框 this-...
c++中的operator的作用 今天在看effective c++的时候,看到了一个奇怪的用法operator FontHandle()const{ return f;}这一下把我整懵了,在我的脑子里operator只能用于操作符重载啊,乍一看还以为是重载(),仔细一看,这函数没有返回值类型,而且只有一个括号,然后写了两个demo对比了一下。class demo {public: demo(int a) :a(a...
python中的yield生成器 # 生成器 #什么是生成器(yield) #生成器就是一种自定义的迭代器 #为什么需要生成器 #生成器是用来返回多次值的一个工具,return只能返回一次值# 在函数内一旦存在yield关键字,调用该函数不会执行函数体# 而会返回一个生成器对象(其实就是自定义的迭代器对象)# 可以使用生成器对象.__next__()来获得返回值def f...
python的有参装饰器 # 有参装饰器 #为什么需要有参装饰器 #前面的学的装饰器的作用是给原函数增加新功能 # 但是当有多个函数需求同样的功能时,又需要一些参数进行区分 # 这时候以前的装饰器就无法解决这个问题了# 比如下面的例子,想在原函数的基础上加上账号密码判断的功能# def outter(func):# def warpper(*arg...
python的装饰器详解 # 装饰器的引入 # 为什么叫装饰器 # 在原来的函数的基础上装饰(添加)新功能的工具 # 装饰器有什么作用 # 在原函数的基础上添加新功能,而不修改的原函数# 举个例子# 在index函数的基础上进行测试程序执行时间的功能import time# def index(x,y):# time.sleep(2)# pri...
编码解码问题 在很多时候我们会碰到编码问题。、编码问题无非两种1. 存盘时出错例如在编写文本文件时,我们用到了日文和英文,(在编辑器中显示正常,是因为,内存中采取的是unicode编码,兼容所有字符)但是我们保存文本文件是确是用了GBK(只支持中文和英文)编码保存的,这时候就会出现保存出错。解决方法:存盘时,使用与编写文本文件兼容的编码进行保存。如上面的例子,我们在存盘时可以以shift_jis(支...