摘要:
参考资料 1. CTDB使用radosobject作为lockfile
阅读全文
posted @ 2023-06-19 15:57
苏格拉底的落泪
阅读(31)
推荐(0)
摘要:
xz -z, --compress # 强制压缩 -d, --decompress, --uncompress # force decompression -t, --test # 测试压缩文件的完整性 -l, --list # 列出有关.xz文件的信息 -k, --keep # 保留(不要删除)输
阅读全文
posted @ 2023-06-16 11:39
苏格拉底的落泪
阅读(346)
推荐(0)
摘要:
关键字global Python 中的全局变量默认是可以在所有的函数内访问的,但是,如果在函数中定义了与全局变量同名的变量时,就会发生局部变量隐藏了全局变量的情形。如果局部变量隐藏了全局变量,那么当我们再次访问全局变量时,程序会报错,会说找不到该变量,因为,该全局变量被局部变量隐藏了。当局部变量与全
阅读全文
posted @ 2023-06-13 21:30
苏格拉底的落泪
阅读(228)
推荐(0)
摘要:
linux命令crontab cron是一个在后台运行调度的守护进程,而crontab是一个设置cron的工具。cron调度的是/etc/crontab文件。 crontab安装: yum install crontabs crontab关闭以及启动等命令: service crond status
阅读全文
posted @ 2023-06-11 11:06
苏格拉底的落泪
阅读(160)
推荐(0)
摘要:
lambda lambda是匿名函数,也就是没有名字的函数。lambda的语法非常简单: 下面是一个lambda表达式的简单例子,我们可以把lambda表达式赋值给一个变量,然后通过这个变量来使用它: >>> my_sum = lambda x, y: x+y >>> my_sum(1, 2) 3
阅读全文
posted @ 2023-06-08 21:45
苏格拉底的落泪
阅读(148)
推荐(0)
摘要:
多文件编程 在Python中,可以将代码拆分成多个文件进行编程,这样有助于组织和维护大型程序。以下是一些常用的方法: 模块导入:将代码划分成几个逻辑上相似的文件,然后使用import语句导入需要使用的模块。 包:将相关的模块放到同一个文件夹内,并加上一个名为__init__.py的空文件,这个文件会
阅读全文
posted @ 2023-06-08 20:20
苏格拉底的落泪
阅读(1868)
推荐(1)
摘要:
同步队列模块queue queue 模块实现了多生产者、多消费者队列。这特别适用于消息必须安全地在多线程间交换的线程编程。模块中的 Queue 类实现了所有所需的锁定语义。 函数 作用 Queue.qsize() 返回队列的大致大小。注意,qsize() > 0 不保证后续的 get() 不被阻塞,
阅读全文
posted @ 2023-06-07 19:45
苏格拉底的落泪
阅读(207)
推荐(0)
摘要:
collections模块之namedtuple 因为元组的局限性:不能为元组内部的数据进行命名,所以往往我们并不知道一个元组所要表达的意义,所以在这里引入了 collections.namedtuple 这个工厂函数,来构造一个带字段名的元组。具名元组的实例和普通元组消耗的内存一样多,因为字段名都
阅读全文
posted @ 2023-06-07 15:47
苏格拉底的落泪
阅读(272)
推荐(0)
posted @ 2023-06-07 10:04
苏格拉底的落泪
阅读(44)
推荐(0)
摘要:
threading模块之Semaphore import threading import time import random # The optional argument gives the initial value for the internal counter; # it defaul
阅读全文
posted @ 2023-06-06 19:49
苏格拉底的落泪
阅读(212)
推荐(0)
摘要:
循环语句 yield from 是Python 3中的一个语法,用于在生成器中委托另一个生成器来产生值。当使用 yield from iterable 时,iterable 应该是一个可迭代对象(如列表、元组、字典、字符串等),其每个元素都是一个生成器。使用 yield from 可以将这些嵌套的生
阅读全文
posted @ 2023-06-06 19:08
苏格拉底的落泪
阅读(40)
推荐(0)
摘要:
函数 方法: def func_name(param1, param2){ # 执行语句... return val } # 调用函数 func_name(param1 = p1, param2 = p2) func_name(param2 = p2, param1 = p1) 参数: 参数 描述
阅读全文
posted @ 2023-06-06 19:02
苏格拉底的落泪
阅读(85)
推荐(0)
摘要:
threading模块之event python的 Event 对象用于线程间通信,即程序中的某一个线程需要通过判断另一个线程的状态来确定自己下一步的操作,这时就需要使用 event 对象。Event 对象包含一个可由线程设置的信号标志,它允许线程等待某些事件的发生。在初始情况下,Event 对象中
阅读全文
posted @ 2023-06-06 16:16
苏格拉底的落泪
阅读(914)
推荐(0)
摘要:
with语法 python从2.5版本开始引入了 with 语法。此语法非常实用,在有两个相关的操作需要在一部分代码块前后分别执行的时候,可以使用 with 语法自动完成。同事,使用 with 语法可以在特定的地方分配和释放资源,因此, with 语法也叫做“上下文管理器”。在threading模块
阅读全文
posted @ 2023-06-06 13:43
苏格拉底的落泪
阅读(72)
推荐(0)
摘要:
参数 / 与 参数 * 意思如下: / 符号之前的所有参数,都必须以位置方式传参,不可以关键字参数传参 * 符号之后的所有参数,都必须以关键字方式传参,不得以位置方式传参 如果你希望强迫调用者使用某些参数,且必须以关键字参数的形式传参,那么你只需要在所需位置的前一个位置放置一个*。 def f1(a
阅读全文
posted @ 2023-06-06 11:27
苏格拉底的落泪
阅读(80)
推荐(0)
摘要:
yield 生成器:生成器是一种特殊类型的函数,其可以使用yield语句来实现迭代器,从而逐个地返回一个序列中的值。相比于常规的函数,生成器函数在需要时才会生成下一个结果,避免了一次性产生所有结果的不便,并且可以节约内存空间。生成器可以通过循环或者列表解析式调用,也可以使用内置函数next()来得到
阅读全文
posted @ 2023-06-06 11:11
苏格拉底的落泪
阅读(88)
推荐(0)
摘要:
函数print name = "John" age = 30 print("My name is", name, "and I am", age, "years old.") 输出: My name is John and I am 30 years old. >>> name = "Eric" >
阅读全文
posted @ 2023-06-03 22:53
苏格拉底的落泪
阅读(174)
推荐(0)
摘要:
threading模块之Thread 使用线程最简单的一个方法是用一个目标函数实例化一个Thread然后调用 start() 方法启动它。Python的threading模块提供了 Thread() 方法在不同的线程中运行函数或处理过程等。 class threading.Thread(group=
阅读全文
posted @ 2023-06-03 16:20
苏格拉底的落泪
阅读(391)
推荐(0)
摘要:
类变量 在类里面定义,且不位于构造或者成员函数里面,同时没有" self. " 的前缀;或者在类外定义,用 类名.类变量名 来新增加类变量。两种使用方法: (1)类名.类变量名(如下的 Test.a) (2)类的实例对象.类变量名(如下的 T.a) class Test: a = 1 ### 类变量
阅读全文
posted @ 2023-06-03 11:12
苏格拉底的落泪
阅读(156)
推荐(0)
摘要:
继承的定义 面向对象编程 (OOP) 语言的一个主要功能就是“继承”。继承是指这样一种能力:它可以使用现有类的所有功能,并在无需重新编写原来的类的情况下对这些功能进行扩展 例如: class Person(object): def talk(self): print("person is talki
阅读全文
posted @ 2023-06-02 15:29
苏格拉底的落泪
阅读(37)
推荐(0)
摘要:
ThreadPoolExecutor 例子1: from concurrent.futures import ThreadPoolExecutor from time import sleep def task(message): sleep(2) return message def main()
阅读全文
posted @ 2023-06-02 15:12
苏格拉底的落泪
阅读(74)
推荐(0)
摘要:
函数参数 * 和 ** 在Python中,函数参数列表中的 * 和 ** 具有特殊的含义。 * 用于表示一个元组(tuple),它将不定数量的位置参数存储为一个元组。当我们无法确定传递给函数的位置参数的数量时,可以使用 * 参数。例如: def test_args(first, *args): pr
阅读全文
posted @ 2023-06-01 22:33
苏格拉底的落泪
阅读(68)
推荐(0)
摘要:
文件锁之fcntl模块 1. 例子 import sys import time import fcntl class FLOCK(object): def __init__(self, name): self.fobj = open(name, 'w') self.fd = self.fobj.f
阅读全文
posted @ 2023-06-01 22:11
苏格拉底的落泪
阅读(41)
推荐(0)
摘要:
函数repr 描述:repr() 函数将对象转化为供解释器读取的形式。 repr(object) repr() 方法可以将读取到的格式字符,比如换行符、制表符,转化为其相应的转义字符。 # coding=UTF-8 s="物品\t单价\t数量\n包子\t1\t2" print(s) print(re
阅读全文
posted @ 2023-06-01 22:04
苏格拉底的落泪
阅读(62)
推荐(0)
摘要:
概述 号 方法, 描述 & 简单的调用 1 __init__ ( self [,args...] )构造函数简单的调用方法: obj = className(args) 2 __del__( self )析构方法, 删除一个对象简单的调用方法 : del obj 3 __repr__( self )
阅读全文
posted @ 2023-06-01 21:45
苏格拉底的落泪
阅读(112)
推荐(0)
摘要:
git diff ^M的消除 这是由于换行符在不同的操作系统上定义的区别造成的。Windows用CR LF来定义换行,Linux用LF。CR全称是Carriage Return ,或者表示为\r, 意思是回车。 LF全称是Line Feed,它才是真正意义上的换行表示符。为什么Windows添加一个
阅读全文
posted @ 2023-06-01 14:57
苏格拉底的落泪
阅读(491)
推荐(0)
摘要:
函数 功能 append(x) 添加x到右端 appendleft(x) 添加x到左端 clear() 移除所有元素,使其长度为0 copy() 创建一份浅拷贝 count(x) 计算deque中元素等于x的个数 extend(iterable) 扩展deque的右侧,通过添加iterable参数中
阅读全文
posted @ 2023-05-31 09:45
苏格拉底的落泪
阅读(38)
推荐(0)
摘要:
读文件 读写文件是最常见的IO操作。python内置了读写文件的函数,用法和C是兼容的。 读写文件前,我们先必须了解一下,在磁盘上读写文件的功能都是由操作系统提供的,现代操作系统不允许普通的程序直接操作磁盘,所以,读写文件就是请求操作系统打开一个文件对象(通常称为文件描述符),然后,通过操作系统提供
阅读全文
posted @ 2023-05-30 20:34
苏格拉底的落泪
阅读(126)
推荐(0)
摘要:
函数os.scandir scandir方法返回了一个DirEntry迭代器对象,它非常轻巧方便,并且能告诉你迭代文件的路径。之前案例中,我们检查了entry是一个文件或者是一个文件夹,与此同时,我们添加它的路径到列表中。在 Python 3.5版本中,新添加了 os.scandir()方法,它是一
阅读全文
posted @ 2023-05-30 16:08
苏格拉底的落泪
阅读(2599)
推荐(0)
摘要:
字符串 字符串是 Python 中最常用的数据类型。我们可以使用引号( ' 或 " )来创建字符串。创建字符串很简单,只要为变量分配一个值即可。例如: var1 = 'Hello World!' var2 = "Runoob" Python 不支持单字符类型,单字符在 Python 中也是作为一个字
阅读全文
posted @ 2023-05-30 10:21
苏格拉底的落泪
阅读(70)
推荐(0)
摘要:
os.path模块 os.path 模块主要用于获取文件的属性。以下是 os.path 模块的几种常用方法: 方法 说明 os.path.abspath(path) 返回绝对路径 os.path.basename(path) 返回文件名 os.path.commonprefix(list) 返回li
阅读全文
posted @ 2023-05-30 10:10
苏格拉底的落泪
阅读(90)
推荐(0)
摘要:
函数返回值,返回多个值(返回元组) 实例1: # 定义函数,有多个返回值(返回元组) def measure(): """测量温度和湿度""" print("测量开始...") temp = 39 wetness = 50 print("测量结束...") # 元组-可以包含多个数据,因此可以使用元
阅读全文
posted @ 2023-05-30 09:53
苏格拉底的落泪
阅读(307)
推荐(0)
摘要:
enumerate enumerate() 函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中。 语法: enumerate(sequence, [start=0]) 参数 sequence :一个序列、迭代器或其他支持迭代对
阅读全文
posted @ 2023-05-30 09:37
苏格拉底的落泪
阅读(36)
推荐(0)
摘要:
内置函数list list() 方法用于将元组转换为列表。 注:元组与列表是非常类似的,区别在于元组的元素值不能修改,元组是放在括号中,列表是放于方括号中。 #!/usr/bin/python # -*- coding: UTF-8 -*- aTuple = (123, 'runoob', 'goo
阅读全文
posted @ 2023-05-30 09:32
苏格拉底的落泪
阅读(164)
推荐(0)
摘要:
切片 切片(slice)是对序列型对象(如list, string, tuple)的一种高级索引方法。普通索引只取出序列中一个下标对应的元素,而切片取出序列中一个范围对应的元素,这里的范围不是狭义上的连续片段。下面的代码初步展示了切片索引的力量。 >>> a = list(range(10)) >>
阅读全文
posted @ 2023-05-30 09:27
苏格拉底的落泪
阅读(118)
推荐(0)
摘要:
pipe 参考资料 1. Linux - pipe() 管道的使用
阅读全文
posted @ 2023-05-23 09:25
苏格拉底的落泪
阅读(38)
推荐(0)
摘要:
参考资料 linux之pthread_atfork()函数讲解
阅读全文
posted @ 2023-05-22 14:55
苏格拉底的落泪
阅读(44)
推荐(0)
摘要:
网卡bond 所谓bond,就是把多个物理网卡绑定成一个逻辑上的网卡,使用同一个IP工作,在增加带宽的同时也可以提高冗余性,一般使用较多的就是来提高冗余,分别和不同交换机相连,提高可靠性,但有时服务器带宽不够了也可以用作增加带宽。 网卡配置bond(绑定)bond模式: 1、Mode=0(balan
阅读全文
posted @ 2023-05-12 14:41
苏格拉底的落泪
阅读(868)
推荐(0)
摘要:
参考资料 1. 本地虚拟机ceph 100.000% pgs not active 2. ceph集群提示pgs: 100.000% pgs unknown的一个解决办法
阅读全文
posted @ 2023-05-09 11:51
苏格拉底的落泪
阅读(639)
推荐(0)
摘要:
参考资料 1.使用vstart搭建ceph开发环境
阅读全文
posted @ 2023-05-06 09:10
苏格拉底的落泪
阅读(202)
推荐(0)