- 博客(59)
- 收藏
- 关注
原创 安装k8s
准备环境设置主机名与时区timedatectl set-timezone Asia/Shanghaihostnamectl set-hostname master配置hosts文件 vim /etc/hosts关闭防火墙 sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config setenforce 0 systemctl disable firewalld systemctl stop fir
2021-03-28 08:22:43
272
原创 Dockerfile基础命令
Dockerfile基本命令FROM - 基于基准镜像FROM centos # 基于centos:latestFROM scratch # 不依赖任何基准镜像base imageFROM tomcat:9.0.22-jdk8-openjdkLABEL & MAINTAINER - 说明信息MAINTAINER xxxx.com机构&个人IDLABEL version=“1.0”LABEL description=“这是描述信息”WORKDIR - 设
2021-03-22 11:16:41
251
原创 容器间的通信&容器间数据共享
容器间的通信单向通信# 运行一个名字是web的tomcat容器 并且链接到database容器,可以进入容器内直接ping database,可以在容器能查看到配置到了/etc/hosts的文件docker run -d --name web --link database tomcatBridge网桥双向通信列出当前docker的网络服务明细docker network ls新建网桥docker network create -d bridge my-bridge将容器连
2021-03-22 11:15:18
229
原创 docker常用命令
配置镜像加速器mkdir -p /etc/dockertee /etc/docker/daemon.json <<-'EOF'{ "registry-mirrors": ["https://xxxx.mirror.aliyuncs.com"]}EOFsystemctl daemon-reloadsystemctl restart dockerdocker常用命令docker pull 镜像名 <:tags> - 从远程仓库抽取镜像docker images -
2021-03-10 19:32:42
119
原创 centos7安装docker
centos7安装docker安装基础包yum install -y yum-utils device-mapper-persistent-data lvm2配置docker源yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repoyum makecache fast安装docker社区版yum -y install docker-ce启动dockers
2021-03-07 17:06:06
46
原创 使用上下文管理器, 实现函数的计时, 魔法方法__enter__、__exit__的使用
# 任何实现了 __enter__() 和 __exit__() 方法的对象都可称之为上下文管理器import timedef func(number): list1 = [1,2,4] # 递归结束条件 if number < 4: return list1[number-1] else: if number > 3: # 递归调用函数 return func(number
2020-10-01 13:42:35
261
原创 对象中使用索引操作, 魔法方法__getitem__、__setitem__、__delitem__的使用
代码# 定义一个类字典对象(继承于dict类),# 创建一个类字典对象,键“a”的值为1,键“b”的值为2.# 当访问键"a"的值得时候,屏幕打印100,# 注意这里不是修改字典。# 修改键“b”的值得时候,屏幕打印键“b”和修改后的值,# 最后打印修改之后的字典。class DiyDict(dict): """定义一个类字典对象(继承于dict类)""" def __init__(self, dict_item, **kwargs): # super调用父类的
2020-10-01 11:28:00
332
原创 property属性的应用
代码# 演示property属性的应用class Person(object): def __init__(self, name): # 私有属性 self.__name = name @property def name(self): # 返回私有属性 return self.__name @name.setter def name(self, value): # 增加判断,
2020-09-15 16:23:34
118
原创 yield实现多任务演示
代码import timedef task1(): """任务1函数""" i = 0 while True: print("-----in task1-----") time.sleep(1) # 主程序中通过next()拿到yield后面的值 # 生成器对象.send(“发送的数据”),这时发送的数据传递到yield,当做yield的返回值 result = yield i i
2020-09-05 19:51:37
197
原创 Python迭代器的应用
代码class Fibonacci(object): def __init__(self, number): self.x = 0 self.y = 1 # 迭代器循环次数记录 self.current_number = 0 # 要计算的斐波那契数列的个数 self.all_number = number def __iter__(self): """可迭代对象, 返回本身作
2020-08-31 23:20:59
191
原创 使用进程池和队列,完成文件夹拷贝案例
代码# 使用进程池和队列,完成文件夹拷贝案例# 在脚本同级目录下有个test文件夹, 里面只放了许多文本文件, 没有第二级目录# 多进程import multiprocessingimport osdef copy_file(file_name, source_folder, target_folder, queue): """ 完成拷贝任务 :param file_name: 需要拷贝的文件名 :param source_folder: 源文件夹
2020-08-31 15:02:36
176
原创 在父进程中创建两个子进程,一个往Queue里写数据,一个从Queue里读数据
代码# 在父进程中创建两个子进程,# 一个往Queue里写数据,一个从Queue里读数据import multiprocessing# 创建一个队列, 里面最大存3个消息queue = multiprocessing.Queue(3)def write_queue(q): # 模拟数据 data = [i for i in range(10)] # 循环往队列中存数据, 当存满时, 默认堵塞 for msg in data: # 往队列中存
2020-08-31 00:06:53
627
原创 定义一个全局的列表,把这个列表,分别传到两个子进程中,其中一个子进程修改,之后打印,另外一个进程,不修改,仅仅打印
代码# 编程实现:定义一个全局的列表,把这个列表,# 分别传到两个子进程中,其中一个子进程修改,# 之后打印,另外一个进程,不修改,仅仅打印import multiprocessingglobal_list = [100]def modify_list(g_list): g_list.append(200) print("in modify_list function, global_list is {}".format(g_list))def show_list
2020-08-31 00:02:23
234
原创 多线程代码练习题
代码"""1、 使用多线程在终端中打印“hello,world” + 线程名字.2、 使用多线程实现:全局变量 g_num=0,使用一个线程,把g_num的值加10次1, 然后主线程等待1秒,另外一个线程把g_num的值加10次13、 使用互斥锁完成2个线程对同一个全局变量各加100万次的操作4、 编写多线程udp聊天器,子线程负责显示接收到的数据,主线程负责获取键盘的数据并发送"""import threadingimport time# 1.使用多线程在
2020-08-29 11:39:05
607
原创 Python检查IPv4地址是否符合规范
代码def check_ip_address(ip_str): """ 检查IPv4的地址是否正确 :param ip_str: ip地址,类型是字符串 :return: 当ip正确时,返回字符串,当ip不正确时,返回None """ # 判断参数是否为字符串 if isinstance(ip_str, str): # 一共4组ip数字 i = 4 # 获取每一位ip 去除左右空格, 并且按"."分割
2020-08-16 01:42:18
1006
原创 Python生成RSA密钥对 and 对象的序列化
流程#mermaid-svg-TlPZvEFPcvMmyYZ1 .label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);fill:#333;color:#333}#mermaid-svg-TlPZvEFPcvMmyYZ1 .label text{fill:#333}#mermaid-svg-TlPZvEFPcvMmyYZ1 .node rect,#mermaid-svg-TlPZvEF
2020-08-15 23:18:44
416
原创 socket模拟TCP服务端
简述使用socket模块, 大致模拟TCP服务端的以下流程:创建TCP套接字( socket.socket(socket.AF_INET, socket.SOCK_STREAM) )绑定端口(bind)设置成监听状态(listen)接受客户端的连接(accept)接收(recv)/发送(send) 给客户端数据关闭客户端的连接(close)关闭服务端的socket运行效果代码# TCP服务端import socketclass TcpServer(object):
2020-08-11 23:16:57
821
原创 TCP三次握手和四次挥手Wireshark抓包查看
TCP三次握手建立连接服务端模拟客户端模拟# 创建TCP套接字tcp_client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)# 客户端连接服务端tcp_client_socket.connect(("192.168.241.1", 8080))Wireshark过滤tcp端口tcp.port == 8080第一次握手客户端向服务端发送 SYN信号第二次握手服务端发客户端发送 (SYN, ACK)信
2020-08-10 23:37:09
447
原创 python读取Windows注册表
运行结果代码import winregdef read_reg(): location = r"Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Shell Folders" # 获取注册表该位置的所有键值 key = winreg.OpenKey(winreg.HKEY_CURRENT_USER, location) print("\n" + "-"*100 + "\n" + location + "
2020-08-09 20:42:30
2432
1
原创 socket简单模拟TCP客户端
简述程序简单的模拟TCP客户端的连接、发送数据、接收数据、关闭连接的流程网络调试助手作为服务端程序模拟TCP客户端代码# TCP客户端import time# 导入socket模块import socketclass TcpClient(object): """TCP客户端""" def __init__(self, connect_ip="127.0.0.1", connect_port=8080): # 创建TCP套接字 self
2020-08-07 00:55:34
1175
2
原创 UDP聊天器_单工情况模拟
客户端运行效果当输入n时, 以客户端运行服务端运行效果输入y, 以服务端运行代码import socketclass UdpChat(object): """UDP聊天器, 单工模拟""" def __init__(self, is_server=True, ip="127.0.0.1", port=8088): # 是否为服务端 self.is_server = is_server # 要发送消息的目标地址
2020-08-03 22:37:24
159
原创 软链接与硬链接画图辅助理解
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200801220847562.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3UwMTA2ODQ2MDM=,size_16,color_FFFFFF,t_70
2020-08-01 22:18:30
202
原创 关于ls -alh显示出来内容的意思
ls -alh$ ls -alh-l : 以列表形式显示-a: 显示全部文件, 包括隐藏文件-h: 人性化形式显示文件大小关于文件类型d是目录文件,l是链接文件,-是普通文件,p是管道关于r w x 在chmod修改文件权限时会用到的值r=4, w=2, x=1...
2020-08-01 18:45:28
5881
1
原创 pygame飞机大战 小游戏
运行效果代码# 先导入系统模块import sys# 随机模块import random# 再导入第三方模块import pygameimport pygame.locals# 背景图片路径IMG_BACKGROUND = "res/img_bg_level_1.jpg"# 敌机图片路径 元组IMG_ENEMYPLANE = ("res/img-plane_1.png", "res/img-plane_2.png", "res/img-plane_3.png", "res/i
2020-07-30 23:24:15
1477
2
原创 记一次pygame小程序打包成exe
安装pyinstaller模块执行打包成exe命令> cd "E:\python程序目录"> e:> pyinstaller -F -w your_python_file.py介绍一下pyinstaller的参数用法:-F:表示生成单个可执行文件-w:表示生成GUI文件,去掉控制台窗口-i:表示可执行文件的图标logo命令格式: pyinstaller -F [-w] [-i ico_name.ico] snake.py其中:[ ]内的内容是可选的,使用图标的时候必
2020-07-30 23:09:46
669
原创 cmd开启和关闭某条防火墙规则
注意:需要管理员身份运行cmd开启某条防火墙规则需要修改对应的单条防火墙规则名,name属性netsh advfirewall firewall set rule name="FTPserver" new enable=yes关闭某条防火墙规则对应的enable属性需要改成nonetsh advfirewall firewall set rule name="FTPserver" new enable=no...
2020-07-30 11:34:03
2062
原创 cmd开启和关闭Windows服务
开启某个服务net start “server name”关闭某个服务net stop “server name”注意:需要用管理员身份运行cmd
2020-07-30 11:10:36
6484
原创 用户登录校验改成模块和包的代码结构
我们先来看一下目录结构自定义的异常类expt文件夹下的question.py文件# expt/question.py文件class NameQuestion(Exception): """用户名异常类""" passclass PasswordQuestion(Exception): """密码异常类""" pass 业务模块(登录校验)services文件夹下的service_check_login.py文件# services/servic
2020-07-25 19:24:44
108
原创 当前test目录下所有的文件名开头添加new_这个字符串
运行后的效果代码如下:# 使用os模块,把文件夹中的所有文件重命名。# 例如,当前test目录下所有的文件名开头添加new_这个字符串。import os# 基础目录BASE_DIR = "E:/python重新学习/python核心编程/文件读写/test/"# 要添加的文件名头部HEAD_NAME = "new_"def main(): # 改变当前路径 os.chdir(BASE_DIR) print(os.getcwd()) # 拿到文件名列
2020-07-25 18:04:18
420
原创 图片读写
# 演示大图片文件的读写操作# 多线程import threading# 原图片路径PIC_LOCATION = "E:/python重新学习/python核心编程/文件读写/picture.jpg"# 待写入的图片路径WRITE_LOCATION = "E:/python重新学习/python核心编程/文件读写/picture_6666.jpg"# 读文件的次数READ_PIC_COUNT = 0# 写文件的次数WRITE_PIC_COUNT = 0# 图片数据PIC_DAT
2020-07-25 17:58:50
195
原创 把一个文件中的内容,复制到另外一个文件中
# 把一个文件中的内容,复制到另外一个文件中。# 基础目录BASE_DIR = "E:/python重新学习/python核心编程/文件读写/"# 读取的文件名READ_FILE = "演示文件读取的文本文件.txt"# 写进的文件名WRITE_FILE = "演示文件的写入.txt"def main(): # 二进制形式打开只读文件 file_read = open(BASE_DIR + READ_FILE, "rb") # 二进制形式打开只写文件 f
2020-07-25 17:54:55
2459
原创 文件写操作
if __name__ == "__main__": # 在相对路径下写入"test.txt"文件 with open("test.txt", "w") as file: file.write("test file")
2020-07-25 17:51:04
85
原创 大文件读操作
# 大文件的读取if __name__ == '__main__': with open("E:/python重新学习/python核心编程/文件读写/演示文件读取的文本文件.txt", "r") as file: while True: # 一次读取8个字节, 下一次文件指针自动往下 info = file.read(8) print(info, end="") # 当读取的字符串长
2020-07-25 17:46:58
99
原创 自定义异常
# 按照如下的要求编写代码:# - 定义 input_password 函数,提示用户输入密码# - 如果用户输入长度 < 8,抛出异常# - 如果用户输入长度 >=8,返回输入的密码class PasswordError(Exception): """密码异常类""" passdef input_password(): # 获取输入时, 去除空格 pwd = input("请输入密码:").strip() if len(pwd) <
2020-07-25 17:14:39
262
原创 用户登录信息校验
# 使用自定义异常, 演示用户登录信息校验# 1. 用户名长度在3-8个字符# 2. 用户名中只能出现英文字母和数字# 3. 密码长度必须是6位# 4. 密码必须由纯数字组成name = input("请输入用户名:")pwd = input("请输入密码:")class NameQuestion(Exception): """用户名异常类""" passclass PasswordQuestion(Exception): """密码异常类""" p
2020-07-25 17:13:13
835
原创 数据存储_代码练习题
import randompractice_num = input("请输入练习题[1-9]:").strip()if practice_num == '1': # 1、 # 声明一个列表如:my_list = ["hello","python","itcast","hello"] , # 练习 对列表的 增删改查统计的操作 my_list = ["hello", "python", "itcast", "hello", "666"] # 列表 末尾增加数
2020-07-25 17:05:29
517
原创 斗地主案例_演示初始化牌、洗牌、发牌
运行效果代码如下:# 1. 扑克牌作为对象呈现# 2, 创建未发牌的牌堆的列表# 3. 创建三个玩家牌堆的列表# 4. 创建底牌的元组# 5. 最原始的牌堆初始化, 将54张牌加入到牌堆# 6. 创建洗牌操作# 7. 创建发牌操作import randomimport copyclass Poke(object): """扑克类""" # 原始牌堆 pokes = list() # 洗好的牌堆 washed_pokes = list()
2020-07-25 16:49:20
311
原创 打印机案例, 办公室里多人使用同一打印机
# 打印机案例, 办公室里多人使用同一打印机class Staff(object): """员工类""" def user_printer(self, info, pr): """ 使用打印机的方法 :param info:需要打印的信息 :param pr: 打印机对象 :return: None """ pr.add_task(info)class Manager(
2020-07-25 16:38:06
225
原创 单例模式
# 演示单例模式class User(object): __instance = None def __new__(cls, *args, **kwargs): if cls.__instance is None: cls.__instance = object.__new__(User) return cls.__instanceif __name__ == '__main__': u1 = User()
2020-07-25 16:35:52
73
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人