自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Python利用psutil库进行监控进程和资源

转载:https://www.jianshu.com/p/0deff60c5c96是一个跨平台的 Python 库,旨在提供对系统资源和进程的高级别接口。它不仅支持 Windows、Linux 和 macOS 等主流操作系统,还提供了一致的 API,使得在不同平台上编写的代码具有较高的可移植性。psutil 不仅易于使用,而且功能丰富,可以满足各种系统监控和进程管理的需求。

2024-07-20 18:35:37 278

原创 Python实现将内容写入文件的五种方法总结

然后,将这个迭代器对象传递给 writelines() 方法,writelines() 方法将迭代器对象中的字符串逐个写入文件。例如,open('example.txt', 'w') 会以写模式打开名为 example.txt 的文件,如果文件不存在,则创建一个新的空文件。如果是相对路径,则相对于当前工作目录。使用 write() 方法:使用 open() 函数打开文件,然后使用 write() 方法将内容写入文件。可以使用 print() 函数向文件写入内容,需要指定 file 参数为打开的文件对象。

2024-07-06 01:02:47 561

原创 Python读取文件的8种常用方式

本文介绍了Python读取文件的几种常见方式。使用open()with语句、pandas库、numpy库、json模块、pickle模块、requests库和os库分别可以读取不同格式的文件或Python对象,以及网络上的文件。在实际编程中,我们可以根据具体的需求选择最合适的方法来读取文件或Python对象。同时,为了避免出现内存溢出等问题,我们可以使用逐行读取文件的方式来读取大文件,或者使用requests库读取网络文件。

2024-07-06 00:50:12 1048

原创 完整篇-Python数据类型转换

my_path = os.path.join(*my_list) # 使用os.path.join来创建跨平台的文件路径。my_str = str(sorted(my_dict.items())) # 将键值对排序。my_list = os.path.split(my_path) # 分割路径为头部和尾部。my_list = my_str.split(':') # 使用':'作为分隔符。my_str = ':'.join(my_list) # 使用':'作为分隔符。

2024-07-04 23:16:20 879

原创 40个Python函数,让你快速成为编程大师!

enumerate()」 - 将一个可迭代对象组合为一个索引序列,同时列出数据和数据下标。「isinstance()」 - 检查一个对象是否是一个已知的类型。「issubclass()」 - 检查一个类是否是另一个类的子类。「zip()」 - 将多个可迭代对象中对应的元素打包成一个个元组。「reduce()」 - 对可迭代对象中的元素进行累积操作。「map()」 - 将一个函数应用于可迭代对象的每个元素。「open()」 - 打开一个文件,并返回文件对象。「dir()」 - 返回对象的属性和方法的列表。

2024-07-04 22:35:15 322

原创 网络编程-select模型

将一组socket数组投递给系统,然后在系统里去查询socket是否有信号,过程都是在select函数里面去进行的,再到返回有操作的socket集合select()函数本质select()函数执行遍历和返回有响应的socket,整个过程中也是阻塞的。等待时间阻塞不等待执行阻塞半等待执行阻塞+软阻塞全等待执行阻塞+硬阻塞。

2024-06-21 12:12:26 858

原创 C++中ios::in, ios::out, ios::trunc使用

在C++中,ios::in和ios::out是iostream库中定义的一些标志,用于控制文件流对象(如fstream、ifstream和ofstream)的行为。

2024-06-11 10:33:51 518

原创 QChart/QChartView—绘制多组柱状图

【代码】QChart/QChartView—绘制多组柱状图。

2024-03-21 23:49:29 247

原创 QCustomPlot系列2—绘制折线图(X轴为时间)

【代码】QCustomPlot系列2—绘制折线图(X轴为时间)

2024-03-20 14:02:02 857

原创 QCustomPlot系列1—绘制折线图(X轴为日期)

【代码】QCustomPlot-实现坐标为日期的折线图。

2024-03-19 22:25:01 606

原创 TCP/IP-常用网络协议自定义结构体

【代码】TCP/IP-常用网络协议自定义结构体。

2024-02-28 20:09:01 886

原创 WinpCap-开发抓包工具-涉及函数说明

winpcap(windows packet capture)是windows平台下一个免费,公共的网络访问系统。开发winpcap这个项目的目的在于为win32应用程序提供访问网络底层的能力。它用于windows系统下的直接的网络编程。进行过网络方面学习的都知道,wireshark软件是基于winpcap的,winpcap可直接开发基于网络底层协议的应用程序。3、捕获网络数据包,使用回调函数或者循环,pcap_loop()函数对捕捉到的数据包进行处理,每次处理一个数据包。

2024-02-28 20:01:44 531

原创 常量指针和指针常量

【代码】常量指针和指针常量。

2024-01-12 18:55:33 416 1

原创 概念理论类-k8s :架构篇

k8s是一个开源的,用于管理云平台中多个主机上的容器化的应用,Kubernetes 的目标是让部署容器化的应用简单并且高效(powerful),Kubernetes 提供了应用部署,规划,更新,维护的一种机制。使用容器化解决方案,每个应用可以被打包成一个容器镜像(红色圈起来表示把服务部署在容器中),使用容器可以在 开发 或 测试 的阶段,为应用创建容器镜像,这些镜像能够完全脱离环境,每个应用不需要与其余的应用堆栈组合,也不依赖于生产环境基础结构,这使得从研发到测试、生产能提供一致环境。

2023-11-30 22:34:00 1296

原创 概念理论类: Linux的管道机制

wc -l用于统计输出信息的行数,因为已经过滤得只剩一般文件了,所以统计结果就是一般文件信息的行数,又由于一行信息对应一个文件,所以也就是文件的个数。说明:ls -l表示长列表输出该目录下文件信息(注意这里的文件,不同于一般的文件,可能是目录、链接、设备文件等)wc - l < lsoutput.txt // 让wc -l 从lsoutput读取输入的数量。ls > lsoutput.txt //把ls输出,放在lsoutput.txt文件中。2. 查看某文件夹下文件的个数,包括子文件夹里的。

2023-11-27 11:49:36 727

原创 使用QTableView实现九九乘法表

【代码】使用QTableView实现九九乘法表。

2023-11-20 14:06:37 387

原创 概念理论类: TCP/IP、Http、Socket之间的区别

TCP/IP是一组通信协议,负责规范了网络通信的底层细节,包括网络层、传输层等,而Socket是网络编程中使用的抽象接口,负责实现网络通信的具体操作。TCP/IP是一组通信协议,负责规范了网络通信的底层细节,而HTTP是基于TCP/IP协议的应用层协议,负责规范了客户端和服务器之间的通信规则。HTTP是一种应用层协议,规定了客户端和服务器之间的通信方式,而Socket是一种编程接口,提供了网络通信的编程能力。HTTP是面向文档的,传输的是特定格式的数据,而Socket是面向流的,传输的是原始的字节流数据。

2023-11-19 00:02:06 672 2

原创 Linux性能监控命令_nmon 安装与使用

3. 根据系统使用合适的文件,我的是 X86_CentOS7,所以将 nmon_x86_64_centos7 修改为 nmon(方便记忆,后续使用懒得去找)Wait%:cpu 等待 IO 的占比(若该占比较高,硬盘可能存在 I/O 瓶颈)Wait% :cpu等待IO的占比(若该占比较高,硬盘可能存在 I/O 瓶颈)Wait% :cpu等待IO的占比(若该占比较高,硬盘可能存在 I/O 瓶颈)Wait% :cpu等待IO的占比(若该占比较高,硬盘可能存在 I/O 瓶颈)

2023-11-13 19:50:47 391

原创 GTest --参数化

这个比较强悍,它将g1,g2,...gN进行排列组合,g1,g2,...gN本身是一个参数生成器,每次分别从g1,g2,..gN中各取出一个值,组合成一个元组(Tuple)作为一个参数。第三个参数是可以理解为参数生成器,上面的例子使用test::Values表示使用括号内的参数。在测试用例中,我们时常需要传给被测函数不同的值,gtest为我们提供了简便的方法,可以使我们能够灵活的进行参数化测试。第二个参数是测试案例的名称,需要和之前定义的参数化的类的名称相同。示例1:最简单的Values()的使用。

2023-10-24 16:56:32 378

原创 Linux C/C++ UDP Socket通信实例

转载:https://www.cnblogs.com/zkfopen/p/9382705.html环境:Linux语言:C/C++通信方式:UDP1. socket: 建立一个socket2. bind: 将这个socket绑定在某个端口上(AF_INET)3. recvfrom: 如果没有客户端发起请求,则会阻塞在这个函数里4. close: 通信完成后关闭socket1. socket: 建立一个socket2. sendto: 向服务器的某

2023-10-20 17:47:46 152

原创 Linux C/C++ TCP Socket通信实例

分别打开两个终端窗口,一个执行./server命令,一个执行./client 127.0.0.1命令,表示连上本机的6666端口,执行./server命令的要先执行。执行./client 127.0.0.1命令后,会提示说要发给server的内容,输入“hello”后,client客户端执行完毕,这时可以看到server的那个终端窗口输出“recv msg from client: hello”。下面用TCP协议编写一个简单的服务器、客户端,其中服务器端一直监听本机的6666号端口。

2023-10-20 17:40:10 189

原创 【C++】g++指令使用指南

在这个过程中,所有未解析的符号都会被赋予一个具体的内存地址,所有的库调用都会被解析,并且需要的库代码会被包含进来(在静态链接的情况下)。在这些命令中,-L. 选项告诉 g++ 在当前目录中查找库文件,-lmath_functions 选项告诉 g++ 链接 libmath_functions 库(注意,-l 选项后面的库名不包含 lib 前缀和 .a 或 .so 后缀)。静态链接是在编译时完成的。因此,生成的可执行文件会比较大,但是它包含了所有需要的代码和数据,可以独立运行,不依赖任何外部的库文件。

2023-10-19 14:58:26 691

原创 [Ubuntu]GTest安装和测试

原文链接:https://blog.csdn.net/qq_36251561/article/details/85319547。编译,这次采用简单的g++命令,需要注意的是 后面需要加上"-lgtest"和"-lpthread"3.将生成的libgtest.a 和 libgtest_main.a 拷贝到系统的lib路径下。到此为止,环境已经搭建完毕,接下来是代码测试。去你自己的文件夹生成一个test.cpp。1.Ubuntu直接通过控制台安装。2.1进入gtest文件夹。

2023-10-19 13:46:14 414

原创 C++ 函数指针详解

每一个函数都占用一段内存单元,它们有一个起始地址,指向函数入口地址的指针称为函数指针。

2023-10-01 12:25:24 405

原创 Google Test使用

如果想要使用Google Test,首先要学会编写断言。1. 什么是断言断言就是那些用来检查一个条件是否为true的语句。一个断言可以有三种结果,分别是成功(Success)、非致命失败(nonfatal failure)和致命失败(fatal failure)。当一个致命失败发生时,它将终止对应的测试用例的执行;不是致命失败,则程序会继续执行下去。2. 不同断言造成的结果对于一个测试点,我们有两类断言可以对它进行测试。不同的断言会对不同的用例有不同的影响。

2023-09-18 23:24:01 196

原创 了解Google Test(gtest)

Google Test也叫gtest,是一个面向C++的单元测试框架。它在Google公司内部使用了多年,并且每天都在上千个项目中进行着单元测试。现在已经成为了C++单元测试的事实标准之一。gtest以其高效、灵活、可移植和可扩展等优点获得广泛好评。

2023-09-18 22:55:33 1312 1

原创 Linux之netstat命令详解

netstat命令用于显示与IP、TCP、UDP和ICMP协议相关的统计数据,一般用于检验本机各端口的网络连接情况。netstat是在内核中访问网络及相关信息的程序,它能提供TCP连接,TCP和UDP监听,进程内存管理的相关报告。TCP连接状态详解LISTEN: 侦听来自远方的TCP端口的连接请求SYN-SENT: 再发送连接请求后等待匹配的连接请求SYN-RECEIVED:再收到和发送一个连接请求后等待对方对连接请求的确认ESTABLISHED: 代表一个打开的连接。

2023-09-18 17:51:43 95

原创 联表查询inner、left、right的区别

换句话说,左表(A)的记录将会全部表示出来,而右表(B)只会显示符合搜索条件的记录(例子中为: A.aID = B.bID).仔细观察一下,就会发现,和left join的结果刚好相反,这次是以右表(B)为基础的,A表不足的地方用NULL填充.left join是以A表的记录为基础的,A可以看成左表,B可以看成右表,left join是以左表为准的.2、left join:left join返回包括左表中的所有记录和右表中联结字段相等的记录。B表记录不足的地方均为NULL.(所影响的行数为 5 行)

2023-09-11 14:07:08 1152

原创 QT通过线程将数据传递给主函数进行显示

cpp文件mainwindow.cpp。头文件mainwindow.h。cpp文件main.cpp。

2023-08-15 16:18:06 167

原创 Qt QObject详解

所以,当你以另一个对象作为父来创建一个QObject对象时,该对象会自动的将它自己添加的父级的孩子列表中,父级会接管该对象的所有权,也就是说,父级会在自己的析构函数中自动释放它的所有孩子。但我们可以使用thread()函数来查询对象的线程亲和性,还可以使用moveToThread()函数来改变一个对象的线程亲和性。如果一个QObject对象是在QThread::run()中被创建的,那么它们不能成为QThread对象的孩子,因为QThread对象并不生存在调用QThread::run()的那个线程中。

2023-08-03 16:38:00 326

原创 C++中std::string::npos

(5)数据类型为size_t的话string:npos常量被定义为-1,因为size_t是无符号整数类型,-1是该类型的最大可能表示值。(3)它用作字符串成员函数中长度参数的值。(4)作为返回值,它通常用于表示没有匹配项。(1)它是一个常量静态成员值,对于 size_t 类型的元素具有最高可能值。(2)它实际上意味着直到字符串的末尾。作字符串成员函数中长度参数的值。作为没有匹配项的示例。

2023-07-31 10:43:43 380

原创 在Ubuntu安装protobuf(C++)

原文链接:https://blog.csdn.net/qq_41950508/article/details/127126215。,可以从里面下载指定语言的压缩包。二、protobuf的安装。

2023-07-24 11:53:27 1157

原创 QT-使用资源增加运行程序图标

3、新增资源文件后,工程目录下显示resource.qrc文件,选择Add Files文件。6、如果再次编辑资源文件,选择 ”Open in Editor"5、在调用资源的代码中,选择“Copy Path"1、在工程项目下,新增resource文件。7、运行程序,应用启动程序增加启动图标。2、命名为:resource。

2023-06-30 10:24:39 190

原创 ROS-机器人开发环境一键安装

第三:选择 【2】:不更换继续安装,执行后见下图。第五:选择[1]: noetic(ROS1)桌面版。ros安装成功,打开新终端,执行roscore命令。

2023-06-26 10:57:25 17953 3

原创 Rviz:三维可视化显示平台

Rviz的核心框架是基于Qt可视化工具打造的一个开放式平台,官方出厂就自带了很多机器人常用的可视化显示插件,只要我们按照ROS中的消息发布对应的话题,就可以看到图形化的效果了。同样的流程,点击Add,添加PointCloud2,设置订阅的点云话题,还要配置Rviz的参考系是odom,就可以看到点云数据啦,每一个点都是由xyz位置和rgb颜色组成。一句话说明Rviz的功能,只要有数据,它就可以可视化,只有我们想不到的,没有Rviz做不到的。2.相机点云数据可视化。3.雷达点云数据可视化。

2023-06-26 10:30:38 641 1

原创 QT 界面实现简单换肤功能

我准备了四张图片,big_spring.png,big_summer.png,small_spring.png,small_summer.png.看名字就知道换肤界面列出来small_spring.png和small_summer.png,点击图片后,主程序界面显示相应大图。如果可以把图片的名字当作信号的参数多好啊,就是点击春天按钮的时候,把“spring”这个字符串当作信号的参数。虚函数就是基类提供的,在我们需要的时候去重载的接口,所以在MainWidget头文件中,重载鼠标双击事件函数。

2023-06-15 15:01:00 1138

原创 Qt子窗口传值到父窗口

cpp和dialog.h 是主对话框的代码;dlg2.cpp和dlg2.h 是子对话框的代码。1)使用Qt中的Signal&Slot机制进行传值。2) 使用public形式的函数接口进行传值。3) 使用全局变量进行传值。

2023-06-15 14:35:16 694

原创 QSignalMapper的使用和使用场景

其实,该类的一个典型的使用场合是,大量控件都要相应槽函数,而这些槽函数的实现又大致相同。setMapping函数的参数只有四种,并且要严格按照格式写入,第一种const QString&,第二种int,第三种QObject*,第四种QWidget *,对于后两种,需要的是他们的子类,则在信号处理的函数里进行类型转化.所以,我们只要将我们定义的一个槽函数连接到mapped()信号,即可处理大量相似控件的槽函数。最后接收转化后的带参数信号,这里把转化后的信号与槽函数连接,在槽函数中获得需要数据。

2023-06-13 11:30:31 160

原创 boost::filesystem总结

该模块提供的类boost::filesystem::path专门用来处理路径。boost::filesystem::status(path) 查询文件或目录的状态,返回的是boost::filesystem::file_status类型的对象。boost::filesystem::recursive_directory_iterator() 递归地遍历一个目录和子目录,也就是迭代整个目录结构下的所有文件。

2023-05-30 15:02:53 1016

原创 YAML - 格式

sample2中,<<: [*CENTER, *BIG]意思是联合引用{x:1, y:2}和{R: 10},并且合并到sample2中,那么结果为sample2={other=haha,x=1,y=2}sample1中,<<: *CENTER意思是引用{x: 1, y:2},并且合并到sample1中,那么合并的结果为:sample1={r=10, y=2,x=1}那么,accomplishment的结果为:将换行符转化成了空格,需要主意的是,每行的文本钱一定要有一个空格。

2023-04-10 20:49:53 2467

python使用 HTMLTestRunner.py生成测试报告

1、适配于python3.*版本 2、把此文件防止python/Lib目录下面

2022-02-21

空空如也

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

TA关注的人

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