Tips-利用python快速下载一个markdown文档中的所有图片(从其链接中)
需求给定一个markdown文件,其中的图片链接均来自网络,如何用python写一下脚本以实现快速将其中所有的图片从其所在的网站中下载下来。
代码示例download_md_pics.py
12345678910111213141516171819202122232425262728293031import requestsimport redef download_images_from_md(md_file): with open(md_file, 'r', encoding='utf-8') as file: content = file.read() # 读取markdown文件 # 使用正则表达式提取markdown图片链接: img_urls = re.findall('!\[.*?\]\((.*?)\)', content) # 下载其中的图片: for url in img_urls: try: ...
c++文件读写操作案例
读取txt文件内容并打印fopen()利用fopen()函数读取txt文件并打印其中的每一个字符:
123456789101112131415161718192021222324#include <stdio.h>#include <stdlib.h>#include <string.h>int main() { FILE* file = fopen("example.txt", "r"); if (file == NULL) { printf("无法打开文件。\n"); return 1; } char buffer[100]; while (fgets(buffer, sizeof(buffer), file)) { char* token = strtok(buffer, " \t\n"); while (token != NULL) ...
学习笔记——《Professional CUDA C Programming》Ch1A - CUDA环境配置
CUDA环境配置安装步骤:
(必须)确定显卡驱动已经正确安装,并查看显卡支持的最高CUDA版本。
(必须)下载安装对应的CUDA开发环境包。
(必须)安装对应的Visual Studio(CUDA编译器需要调用VS中的一些库,即使不想用VS作为IDE也需要安装它。实际开发的时候可以用更轻量的编辑器)。
(可选)安装对应的cuDNN (如果有深度学习计算的需求)。
参考大神博客:CUDA安装及环境配置——最新详细版-CSDN博客
1、查看显卡驱动信息Nvidia的显卡驱动在这里下载:NVIDIA GeForce 驱动程序 - N 卡驱动 | NVIDIA
下载并安装完成后,在“设置”->“应用和功能”中能看到Nvidia驱动被正确安装。
在cmd中输入nvidia-smi可以获取显卡信息,注意关注该驱动最高支持的CUDA 版本(我的是11.1):
2、下载CUDA在CUDA官网中下载与显卡驱动版本相对应的CUDA开发包(Toolkit),以下是相关资源网站列表:
CUDA Toolkit 12.4 Update 1 Downloads | NVIDIA Develop ...
学习笔记——《Professional CUDA C Programming》Ch1 Heterogeneous Parallel Computing With CUDA
Ch1. Heterogeneous Parallel Computing With CUDA前言本系列笔记是《Professional CUDA C Programming》的读书笔记,基本顺序与书的目录相一致,总结了其中我认为重要的知识点,以及通过查阅相关技术资料加入了我个人的理解。文中部分内容引用原书中的图、文字和表述,均会在旁边加以标注。
并行计算概述并行计算是当今技术飞速发展的重要推动力,是实现高性能计算(HPC, high-performance computing)的核心技术之一。近年来,CPU-GPU 异构架构(heterogeneous architecture)将并行计算的发展提升到了一个新的高度。通常来说,并行计算可以分为两个维度:
硬件方面:计算架构 (Computer architecture)
软件方面:并行编程 (Parallel programming)
现代CPU多采用Harvard架构:
Harvard架构(来源于《Professional CUDA C Programming》 Figure 1-1)
并行计算通常分为两种:
任务并行 ...
学习笔记——《大话数据结构》Ch3 数组与链表
学习笔记——《大话数据结构》Ch3 数组与链表第3章、线性表定义抽象的线性表类型 Sequential:(sequential.h)
12345678910111213141516171819202122#ifndef SEQUENTIAL_H#define SEQUENTIAL_H#define OK 1#define ERROR 0#define TRUE 1#define FALSE 0#define MAXSIZE 1000typedef int Status;typedef int ElemType;// 定义抽象的线性表类型Sequential及其接口class Sequential{public: // 在线性表s的第i个位置前插入元素e (i为计数脚标,从0开始)。设线性表元素数量为N,若i==N,则插在表尾 virtual Status insert(int i, ElemType e) = 0; virtual const int getLength() = 0;};#endif
线性表的数组实现 Array:(array.h)
12345 ...
学习笔记——《大话数据结构》Ch1, Ch2 基础知识
学习笔记——《大话数据结构》Ch1, Ch2 基础知识第1章、数据结构绪论
数据结构是一门研究非数值计算的程序设计问题中的操作对象,以及它们之间的关系和操作等相关问题的学科。
数据:是描述客观事物的符号,是计算机中可以操作的对象,是能被计算机识别,并输入给计算机处理的符号集合。
数据元素:是组成数据的、有一定意义的基本单位,在计算机中通常作为整体处理。也被称为记录。
数据项:一个数据元素可以由若干个数据项组成。是数据不可分割的最小单位。
数据对象:是性质相同的数据元素的集合,是数据的子集。
数据结构:是相互之间存在一种或多种特定关系的数据元素的集合。
逻辑结构:数据对象中数据元素之间的相互关系。包括集合结构、线性结构、树形结构、图形结构等。
物理结构:数据的逻辑结构在计算机中的存储形式。包括顺序存储结构、链式存储结构等。
抽象数据类型:(Abstract Data Type, ADT):指一个数学模型及定义在该模型上的一组操作。
第2章、算法
算法:是解决特定问题求解步骤的描述,在计算机中表现为指令的有限序列,并且每条指令表示一个或多个操作。
算法特性:
输入 ...
Python-Web通信例子
概要本文介绍几个能实现几台设备(一台server,若干台client)之间通信的python案例。
例1、socket库:顺序通信(1个server, 1个client)server端和client端双向互相发送消息的情况(都为主动发送):
server.py
12345678910111213141516171819202122232425262728293031323334353637383940414243import socketimport timeHOST = '0.0.0.0' # 监听所有可用的接口PORT = 8887 # 非特权端口号max_client_num = 5 # 最大连接client数# 创建服务器套接字server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)# 绑定服务器地址和端口server_socket.bind((HOST,PORT))# 监听连接server_socket.listen(max_client_num)print('服务器 ...
Linux-CentOS系统安装VNC
概述本文介绍CentOS 7.6系统如何安装VNC。
步骤以root用户执行以下安装步骤。
SSH连接,使用root权限或具有sudo权限的用户执行以下命令,以确保系统处于最新状态: sudo yum install tigervnc-server
安装GNOME桌面:yum groupinstall -y "GNOME Desktop"配置图形、用户信息:
systemctl set-default graphical.targetsystemctl set-default multi-user.target
安装VNC:sudo yum install tigervnc-server验证是否安装成功:rpm -qa|grep tigervnc-server
针对VNC服务器设置一个密码,用于远程连接时进行身份验证:vncpasswd
为VNC服务器创建一个配置文件:(这里拷贝/lib下的配置文件到/etc)cp /lib/systemd/system/vncserver@.service /etc/systemd/system/ ...
AndroidStudio-04制作一个简单的计算器
概述本文用AndroidStudio制作一个非常简单的计算器app。目的是熟悉前端设计元素和后端代码执行逻辑,以及二者的整合。
演示能实现最简单的四则运算:
代码前端:activity_main.xml
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681 ...