1、OS模块提供对操作系统进行调用的接口

#  这种调用方式是通过管道的方式来实现,函数返回一个file-like的对象,里面的内容是脚本输出的内容(可简单理解为echo输出的内容)
p = os.popen("dir")
x = p.read()
print("read ls :%s" %x )
# 该方法在调用完shell脚本后,返回一个信号代码
s = os.system("dir")
print("system ret :%d" %s)os.name字符串指示你正在使用的平台。比如对于Windows,它是'nt',而对于Linux/Unix用户,它是'posix'。
os.getcwd()函数得到当前工作目录,即当前Python脚本工作的目录路径。
os.getenv()和os.putenv()函数分别用来读取和设置环境变量。
os.listdir()返回指定目录下的所有文件和目录名。
os.remove()函数用来删除一个文件。
os.system()函数用来运行shell命令。
os.linesep字符串给出当前平台使用的行终止符。
os.path.split()函数返回一个路径的目录名和文件名。
os.path.isfile()和os.path.isdir()函数分别检验给出的路径是一个文件还是目录。
os.path.exists()函数用来检验给出的路径是否真地存在
os和os.path模块
os.listdir(dirname):列出dirname下的目录和文件
os.getcwd():获得当前工作目录
os.curdir:返回但前目录('.')
os.chdir(dirname):改变工作目录到dirname
os.path.isdir(name):判断name是不是一个目录,name不是目录就返回false
os.path.isfile(name):判断name是不是一个文件,不存在name也返回false
os.path.exists(name):判断是否存在文件或目录name
os.path.getsize(name):获得文件大小,如果name是目录返回0L
os.path.abspath(name):获得绝对路径
os.path.normpath(path):规范path字符串形式
os.path.split(name):分割文件名与目录(事实上,如果你完全使用目录,它也会将最后一个目录作为文件名而分离,同时它不会判断文件或目录是否存在)
os.path.splitext():分离文件名与扩展名
os.path.join(path,name):连接目录与文件名或目录
os.path.basename(path):返回文件名
os.path.dirname(path):返回文件路径

2、sys模块可以实现从程序外部向程序内部传递参数sys.argv: 实现从程序外部向程序传递参数。

sys.exit([arg]): 程序中间的退出,arg=0为正常退出。
sys.getdefaultencoding(): 获取系统当前编码,一般默认为ascii。
sys.setdefaultencoding(): 设置系统默认编码,执行dir(sys)时不会看到这个方法,在解释器中执行不通过,可以先执行reload(sys),在执行 setdefaultencoding('utf8'),此时将系统默认编码设置为utf8。(见设置系统默认编码 )
sys.getfilesystemencoding(): 获取文件系统使用编码方式,Windows下返回'mbcs',mac下返回'utf-8'.
sys.path: 获取指定模块搜索路径的字符串集合,可以将写好的模块放在得到的某个路径下,就可以在程序中import时正确找到。
sys.platform: 获取当前系统平台。
sys.stdin,sys.stdout,sys.stderr stdin , stdout , 以及stderr 变量包含与标准I/O 流对应的流对象. 如果需要更好地控制输出,而print 不能满足你的要求, 它们就是你所需要的. 你也可以替换它们, 这时候你就可以重定向输出和输入到其它设备( device ), 或者以非标准的方式处理它们
sys._getframe()
sys.modules 已加载的模块的字典
sys.exc_info() 获取正在处理的异常的相关信息
sys.builtin_module_names 当前解释器所有内置模块的名称
sys.copyright 包含解释器版权相关信息的字符串
sys.exec_prefix 用于查找特定于当前机器的python库的路径前缀
sys.executable Python解释器可执行文件的绝对路径
sys.float_info 包含有关浮点数实现的信息的结构序列
sys.float_repr_style 表示浮点数的repr()方法的输出样式的字符串
sys.hash_info 包含哈希算法相关信息的结构序列
sys.hexversion 对sys.version_info中包含的版本信息进行编码后使用十六进制表示的整数
sys.implementation 包含有关Python实现的相关信息
sys.int_info 包含有关整形实现的信息的结构序列
sys.maxsize 返回字符串、列表、字典和其他内置类型的最大长度
sys.maxunicode 返回能够表示的最大Unicode码点的整数值
sys.platform 返回平台标识符字符串
sys.prefix 返回安装平台无关Python文件的目录
sys.thread_info 包含有关线程实现的信息的结构序列
sys.version 表示当前解释器版本的字符串
sys.version_info 当前解释器版本的命名元组
sys.byteorder 本机的字节排序方式,little表示小尾,big表示大尾
sys.api_version 返回表示Python解释器的C语言版本API的整数
sys.exit(n) 通过引发SystemExit异常来退出当前程序,n是一个表示状态码的整数退出码。0值表示正常(默认值),非零值表示异常。如果n指定为一个非整数值,则将它打印到sys.stderr并使用退出码1退出
sys.displayhook(p_object) 解释器以交互模式运行时,调用该函数会打印表达式的结果
sys.excepthook(type, value, traceback) 发生未捕获的异常时将调用该函数
sys.getdefaultencoding() 返回Unicode实现所使用的默认字符串编码格式
sys.getfilesystemencoding 返回用于将Unicode文件名转换成操作系统使用的文件名时所用的编码格式
sys.getfilesystemencodeerrors() 返回将Unicode文件名转换成操作系统使用的文件名时的错误模式
sys.getdlopenflags() 返回调用C函数 dlopen 时使用的标志参数的值。
sys.getprofile() 返回由sys.setprofile(function)设置的系统配置函数
sys.getcheckinterval() 返回由sys.setcheckinterval()函数设置的检查异步事件的频率
sys.getrefcount(obj) 返回对象obj的引用计数
sys.getsizeof() 获取对象占用的内存大小(用字节表示)
sys.gettrace() 返回由sys.settrace(function)设置的跟踪函数
sys.setcheckinteral(n) 设置python解释器每n条指令执行一次异步事件的检查。这个设置会影响线程切换的频率
sys.setdlopenflags(n) 设置调用C函数 dlopen 时使用的标志参数的值
sys.setprofile(function) 设置系统配置函数,用于实现源代码配置程序
sys.setrecursionlimit(n) 设置解释器的最大递归深度
sys.settrace(tfunc) 设置系统跟踪函数,用于实现调试器

3、paltform模块可以获取系统的一些信息platform.system() 获取操作系统类型,windows、linux等

platform.platform() 获取操作系统,Darwin-9.8.0-i386-32bit
platform.version() 获取系统版本信息 6.2.0
platform.mac_ver()
platform.win32_ver() ('post2008Server', '6.2.9200', '', u'Multiprocessor Free')

4、time & datetime模块:时间和日期时间模块。

time.time( ):返回当前时间的时间戳。
time.ctime([secs]):把一个时间戳(按秒计算的浮点数)转化为time.asctime()的形式。如果参数未给或者为None的时候,将会默认time.time()为参数。它的作用相当于time.asctime(time.localtime(secs))。
time.localtime([secs]):将一个时间戳转换为当前时区的struct_time。secs参数未提供,则以当前时间为准。
time.gmtime([secs]):和localtime()方法类似,gmtime()方法是将一个时间戳转换为UTC时区(0时区)的struct_time。
time.mktime(t):将一个struct_time转化为时间戳。
time.sleep(secs):线程推迟指定的时间运行。单位为秒。
time.asctime([t]):把一个表示时间的元组或者struct_time表示为这种形式:‘Sun Jun 20 23:21:05 1993’。如果没有参数,将会将time.localtime()作为参数传入。
time.strftime(format[, t]):把一个代表时间的元组或者struct_time(如由time.localtime()和time.gmtime()返回)转化为格式化的时间字符串。如果t未指定,将传入time.localtime()。如果元组中任何一个元素越界,ValueError的错误将会被抛出。t格式为%Y-%m-%d %H:%M:%S需要依次对应,哪个字符对应年,月,日,星期要准确才能正常打印出date.today():返回一个表示当前本地日期的date对象。
date.fromtimestamp(timestamp):根据给定的时间戮,返回一个date对象。
date.year、date.month、date.day:年、月、日;
date.replace(year, month, day):生成一个新的日期对象,用参数指定的年,月,日代替原有对象中的属性。(原有对象仍保持不变)
date.timetuple():返回日期对应的time.struct_time对象即一个元组;
date.toordinal():返回日期对应的Gregorian Calendar日期;
date.weekday():返回weekday,如果是星期一,返回0;如果是星期2,返回1,以此类推;
data.isoweekday():返回weekday,如果是星期一,返回1;如果是星期2,返回2,以此类推;
date.isocalendar():返回格式如(year,month,day)的元组;
date.isoformat():返回格式如'YYYY-MM-DD’的字符串;
date.strftime(fmt):自定义格式化字符串。
datetime.today():返回一个表示当前本地时间的datetime对象;
datetime.now([tz]):返回一个表示当前本地时间的datetime对象,如果提供了参数tz,则获取tz参数所指时区的本地时间;
datetime.utcnow():返回一个当前utc时间的datetime对象;
datetime.fromtimestamp(timestamp[, tz]):根据时间戮创建一个datetime对象,参数tz指定时区信息;
datetime.utcfromtimestamp(timestamp):根据时间戮创建一个datetime对象;
datetime.combine(date, time):根据date和time,创建一个datetime对象;
datetime.strptime(date_string, format):将格式字符串转换为datetime对象;
datetime.date():获取date对象;
datetime.time():获取time对象;
datetime. replace ([ year[ , month[ , day[ , hour[ , minute[ , second[ , microsecond[ , tzinfo] ] ] ] ] ] ] ]):生成一个新的日期时间对象,用参数指定的:年、月、日、时、分、秒、毫秒、时区代替原有对象中的属性
datetime. timetuple ():返回日期对应的datetime.struct_time对象即一个元组;
datetime. utctimetuple ()
datetime. toordinal ():返回日期对应的Gregorian Calendar日期时间
datetime. weekday ():返回weekday,如果是星期一,返回0;如果是星期2,返回1,以此类推
datetime. isocalendar ():返回格式如(year、month、day、hour、minute、second、microsecond、tzinfo)的元组
datetime. isoformat ([ sep] ):
datetime. ctime ():返回一个日期时间的C格式字符串,等效于time.ctime(time.mktime(dt.timetuple()));
datetime. strftime (format):返回自定义格式化字符串。

5、random:随机数模块。

getrandbits(n) 以长整型形式返回n个随机位;
random.random()函数是这个模块中最常用的方法了,它会生成一个随机的浮点数,范围是在0.0~1.0之间。
random.uniform()正好弥补了上面函数的不足,它可以设定浮点数的范围,一个是上限,一个是下限。
random.randint()随机生一个整数int类型,可以指定这个整数的范围,同样有上限和下限值。
random.choice()可以从任何序列,比如list列表中,选取一个随机的元素返回,可以用于字符串、列表、元组等。
random.shuffle()如果你想将一个序列中的元素,随机打乱的话可以用这个函数方法。
random.sample()可以从指定的序列中,随机的截取指定长度的片断,不作原地修改。

6、json & picle:JSON和序列化模块。

json.dumps()函数,参数接收的是字典类型的对象,如果对象不是字典类型,可以重写函数,进行序列化,就是参数default=重写的函数名,重写函数的功能也是将对象格式化成字典类型,返回值为字典类型。这里只介绍传入的就是字典。
json.loads()函数,反序列化,就是讲json格式的数据转化成为字典类型,如果不想要反序列化为字典类型,那么可以自己重写钩子函数,就是object_hook这个参数,传入钩子函数的引用就可以
json.dump()函数:和上面一样,只是这里传入的参数不一样,且没有返回值。
json.load()函数:传入的参数也不一样,有返回值,。

例子:

import json
str1 = {"name":"aaa"}
print(type(str1),str1)
str1_json = json.dumps(str1)
print(type(str1_json),str1_json)
str2_json = json.dumps(str1)
print(type(str2_json),str2_json)
str2 = json.loads(str1_json)
print(str2,type(str2))
f = open('1.json','w',encoding='utf-8')
json.dump(str1,f)
f = open('1.json','r')
st = json.load(f)
print(st,type(st))

7、xml:XML处理模块。

#import xml.etree.ElementTree as ET
a = ET.Element("root")#创建根节点
#创建子节点,并添加属性
b = ET.SubElement(a,"sub1")
b.attrib = {"name":"name attribute"}
#创建子节点,并添加数据
c = ET.SubElement(a,"sub2")
c.text = "test"
#创建elementtree对象,写文件
tree = ET.ElementTree(a)
tree.write("test.xml")
#从变量读取,参数为XML段,返回的是一个根Element对象
root = ET.fromstring(country_data_as_string)
#从xml文件中读取,用getroot获取根节点,根节点也是Element对象
tree = ET.parse('file.xml')
root = tree.getroot()
#访问Element对象的标签、属性和值
tag = element.tag
attrib = element.attrib
value = element.text
$访问子节点
#打印根节点的标签和属性,获取
for child in root:
print(child.tag, child.attrib)
#打印根节点中所有的neighbor对象的name属性
for neighbor in root.iter('neighbor'):
print(neighbor.attrib['name'])
Element.findall("tag"):查找当前元素为“tag”的直接子元素
#findall只能用来查找直接子元素,不能用来查找rank,neighbor等element
for country in root.findall('country'):
rank = country.find('rank').text
name = country.find('rank').text
neig = country.find('neighbor').attrib
print(rank, name,neig)
Element.find("tag"):查找为tag的第一个直接子元素
#返回第一个tag为country的element,如没有,返回None
firstCountry = root.find("country")
print(firstCountry)
#修改XML文件
ElementTree.write("xmlfile"):更新xml文件
Element.append():为当前element对象添加子元素(element)
Element.set(key,value):为当前element的key属性设置value值
Element.remove(element):删除为element的节点
#读取待修改文件
updateTree = ET.parse("test.xml")
root = updateTree.getroot()
#创建新节点并添加为root的子节点
newEle = ET.Element("NewElement")
newEle.attrib = {"name":"NewElement","age":"20"}
newEle.text = "This is a new element"
root.append(newEle)
#修改sub1的name属性
sub1 = root.find("sub1")
sub1.set("name","New Name")
#修改sub2的数据值
sub2 = root.find("sub2")
sub2.text = "New Value"
#写回原文件
updateTree.write("test.xml")

8、string模块。

str.capitalize() 把字符串的第一个字符大写
str.center(width) 返回一个原字符串居中,并使用空格填充到width长度的新字符串
str.ljust(width) 返回一个原字符串左对齐,用空格填充到指定长度的新字符串
str.rjust(width) 返回一个原字符串右对齐,用空格填充到指定长度的新字符串
str.zfill(width) 返回字符串右对齐,前面用0填充到指定长度的新字符串
str.count(str,[beg,len]) 返回子字符串在原字符串出现次数,beg,len是范围
str.decode(encodeing[,replace]) 解码string,出错引发ValueError异常
str.encode(encodeing[,replace]) 解码string
str.endswith(substr[,beg,end]) 字符串是否以substr结束,beg,end是范围
str.startswith(substr[,beg,end]) 字符串是否以substr开头,beg,end是范围
str.expandtabs(tabsize = 8) 把字符串的tab转为空格,默认为8个
str.find(str,[stat,end]) 查找子字符串在字符串第一次出现的位置,否则返回-1
str.index(str,[beg,end]) 查找子字符串在指定字符中的位置,不存在报异常
str.isalnum() 检查字符串是否以字母和数字组成,是返回true否则False
str.isalpha() 检查字符串是否以纯字母组成,是返回true,否则false
str.isdecimal() 检查字符串是否以纯十进制数字组成,返回布尔值
str.isdigit() 检查字符串是否以纯数字组成,返回布尔值
str.islower() 检查字符串是否全是小写,返回布尔值
str.isupper() 检查字符串是否全是大写,返回布尔值
str.isnumeric() 检查字符串是否只包含数字字符,返回布尔值
str.isspace() 如果str中只包含空格,则返回true,否则FALSE
str.title() 返回标题化的字符串(所有单词首字母大写,其余小写)
str.istitle() 如果字符串是标题化的(参见title())则返回true,否则false
str.join(seq) 以str作为连接符,将一个序列中的元素连接成字符串
str.split(str=‘‘,num) 以str作为分隔符,将一个字符串分隔成一个序列,num是被分隔的字符串
str.splitlines(num) 以行分隔,返回各行内容作为元素的列表
str.lower() 将大写转为小写
str.upper() 转换字符串的小写为大写
str.swapcase() 翻换字符串的大小写
str.lstrip() 去掉字符左边的空格和回车换行符
str.rstrip() 去掉字符右边的空格和回车换行符
str.strip() 去掉字符两边的空格和回车换行符
str.partition(substr) 从substr出现的第一个位置起,将str分割成一个3元组。
str.replace(str1,str2,num) 查找str1替换成str2,num是替换次数
str.rfind(str[,beg,end]) 从右边开始查询子字符串
str.rindex(str,[beg,end]) 从右边开始查找子字符串位置
str.rpartition(str) 类似partition函数,不过从右边开始查找
str.translate(str,del=‘‘) 按str给出的表转换string的字符,del是要过虑的字符

9、configparser:用于生成和修改常见配置文件。

read(filenames),filesnames是一个列表,需要从文件加载初始值的应用程序应该在调用read()之前使用readfp()加载所需的文件或文件。
readfp(fp[, filename]),在fp中,从文件或文件类对象中读取和解析配置数据(只使用readline()方法)。如果文件名被省略,并且fp有一个name属性,它被用于文件名;默认值为< ? >。
write(fileobject),将配置的表示写入指定的文件对象。这个表示可以由未来的read()调用解析。
add_section(section),向实例添加一个section
emove_option(section, option)   从指定的部分中删除指定的选项。如果该部分不存在,请提出NoSectionError。如果存在的选项被删除,返回True;否则返回False。
remove_section(section) 从配置中删除指定的section。如果这个部分确实存在,返回True。否则返回假
set(section, option, value) 如果给定的部分存在,将给定的选项设置为指定的值
optionxform(option) 也可以在一个实例上重新设置它,对于一个需要字符串参数的函数。例如,将其设置为str,将使选项名称区分大小写
defaults()  返回包含实例范围默认值的字典。
sections()  返回可用的section的列表;默认section不包括在列表中
has_section(section)    指示指定的section是否出现在配置中。默认的section未被确认
options(section)    返回指定section中可用的选项列表。
has_option(section, option) 如果给定的section存在,并且包含给定的选项,则返回True;否则返回False
get(section, option)    为指定的section获取一个选项值。
getint(section, option) 它将指定section中的选项强制转换为整数
getfloat(section, option)   它将指定section中的选项强制转换为浮点型
getboolean(section, option) 强制转换为布尔型,”1”, “yes”, “true”, and “on”, 转换为True,”0”, “no”, “false”, and “off”, 转换为Falseo 其他返回ValueError.
items(section)  返回给定section中每个选项的(name,value)对的列表。

10、subprocess:用来生成子进程,并可以通过管道连接他们的输入/输出/错误,以及获得他们的

subprocess.Popen(args, bufsize=-1, executable=None,stdin=None, stdout=None, stderr=None,preexec_fn=None, close_fds=_PLATFORM_DEFAULT_CLOSE_FDS,shell=False, cwd=None, env=None, universal_newlines=False,startupinfo=None, creationflags=0,restore_signals=True, start_new_session=False,pass_fds=(), *, encoding=None, errors=None)args:shell命令,可以是str类型,或者list和tuplebufsize:缓冲区stdin、stdout、stderr:标准输入输出和标准错误日志subprocess.PIPE:创建Popen对象时,subprocess.PIPE可以初始化stdin、stdout、stderr参数li
subprocess.run()函数是Python3.5中新增的一个高级函数,其返回值是一个subprocess.CompletedPorcess类的实例。
subprocess.call()父进程等待子进程完成,执行成功返回0,执行失败returncode=2,不会主动抛error
subprocess.check_call()父进程等待子进程完成,执行成功返回0,returncode不为0,抛出subprocess.CalledProcessError:error信息只有returncode
subprocess.check_output()父进程等待子进程完成,执行成功返回output信息,returncode不为0,抛出subprocess.CalledProcessError:error信息包含returncode和output信息

例子:

import subprocesschild = subprocess.Popen(['shell','python --version'], stdin = subprocess.PIPE, stdout = subprocess.PIPE, stderr= subprocess.PIPE)
shell_out = child.stdout.read()
# shell_out = child.communicate()     也可以使用communicate()方法输出
shell_error = child.stderr.read()
print(shell_out)
print(shell_error)
//其他方法
#child.poll()    #检查子进程状态
#child.kill()     #终止子进程
#child.send_signal()  #向子进程发送信号
#child.terminate()   #终止子进程

11.python中socket

1.socket类型

套接字格式

socket(family,type[,protocal])使用给定的地址族,套接字类型,协议编号(默认为0)来创建套接字

其中:

family指明了协议族/域,通常AF_INET、AF_INET6、AF_LOCAL等;

type是套接口类型,主要是SOCK_STREAM、SOCK_DGRAM、SOCK_RAW;

protocol一般取为0。(默认)与特定的地址家族相关的协议,如果是 0 ,则系统就会根据地址格式和套接类别,自动选择一个合适的协议成功时,返回一个小的非负整数值,与文件描述符类似。

//创建TCP Socket:
s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)//创建UDP Socket:
s = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)

2.socket函数

s.bind(address)
将套接字绑定到地址,在AF_INET下,以tuple(host,prot)的方式传入,如s.bind((host,port))。s.listen(backlog)
开始监听TCP传入连接。backlog指定在拒绝连接之前,操作系统可以挂起的最大连接数量。该值最少为1,大部分应用程序社为5就可以了。s.accept()
接受TCP连接并返回(conn,address),其中conn是新的套接字对象,可以用来接收和发送数据,address是连接客户端的地址。(sock,addr = s.accept)。s.connect(address)
链接到address处的套接字,一般address的格式为tuple(host,port),如果链接出错,则返回socket.error错误。s.connect_ex(address)
功能与s.connect(address)相同,但成功返回0,失败返回errno的值。s.recv(bufsize[,flag])
接受TCP套接字的数据,数据以字符串的形式返回,bufsize指定要接收的最大数据量,flag提供有关消息的其它消息,通常可以忽略。s.recvfrom(bufsize[,flag])
接受UDP套接字的数据,与recv()类似,但返回值是tuple(data,address)。其中data是包涵接受数据的字符串,address是发送数据的套接字地址。s.send(string[,flag])
发送TCP数据,将string中的数据发送到连接到套接字,返回值是要发送到字节数量,该数量可能小于string的字节大小。s.sendall(string[,flag])
完整发送TCP数据,将string中的数据发送到链接到套接字,但在返回之前尝试发送所有的数据。成功返回None,失败则抛出异常。s.sendto(string[,flag],address)
发送UDP数据,将数据发送到套接字,address形式为tuple(hostadder,port),指定远程地址发送,返回值是发送到字节。s.close()
关闭套接字。s.getpeername()
返回套接字的远程地址,返回值通常是一个tuple(hostaddr,port)。s.getsockname()
返回套接字自己的地址,返回值通常是一个tuple(hostaddr,port)。s.getsockopt(level,optname[,buflen]])
返回套接字选项的值。s.gettimeout()
返回当前超时值,单位是秒,如果没有设置超时值则返回None。s.setsockopt(level, option,value)
设置给定套接字选项的值s.settimeout(timeout)
设置套接字操作的超时时间,timeout是一个浮点数,单位是秒。值为None则表示永远不会超时。一般超时期应在刚创建套接字时设置,因为它们可能用于连接的操作,如s.connect()。s.setblocking(flag)
如果flag为0,则将套接字设置为非阻塞模式,否则将套接字设置为阻塞模式(默认值)。非阻塞模式下,如果调用recv()没有发现任何数据,或send()调用无法立即发送数据,那么将引发socket.error异常。s.makefile()
创建一个与该套接字相关的文件。s.fileno()
返回套接字的文件描述。

11.python中psutil模块用法

1.CPU信息

psutil.cpu_times(percpu=False)
使用cpu_times 方法获取CPU完整信息,需要显示所有逻辑CPU信息,percpu = True可选。psutil.cpu_times().user可以获取用户user的CPU时间psutil.cpu_percent(interval=None, percpu=False)
本机cpu的总占用率psutil.cpu_times_percent(interval=None, percpu=False)
和cpu_percent()相近,但是返回的是百分比psutil.cpu_count(logical=True)
获取CPU 的逻辑个数,默认logical=True。logical=False时获取CPU 的物理个数psutil.cpu_stats()
返回如scpustats(ctx_switches=20455687, interrupts=6598984, soft_interrupts=2134212, syscalls=0)的统计信息。psutil.cpu_freq(percpu=False)
CPU 频率信息scpufreq(current=931.42925, min=800.0, max=3500.0)psutil.getloadavg()
the average system load over the last 1, 5 and 15 minutes。

2.Memory信息

psutil.virtual_memory()
获取内存完整信息,
mem = psutil.virtual_memory() ,
mem.total 获取内存总数
mem.free 获取空闲内存数
psutil.swap_memory() 获取swap分区信息

内存信息主要包括以下几个部分:

Total(内存总数)

Used(已使用的内存数)

Free(空闲内存数)

Buffers(缓冲使用数)

Cache(缓存使用数)

Swap(交换分区使用数)

3.Disks信息

psutil.disk_partitions(all=False)
获取磁盘完整信息
psutil.disk_usage(path)
获取path所在分区(参数)使用情况
psutil.disk_io_counters(perdisk=False, nowrap=True)
获取硬盘总的IO个数、读写信息。 'perdisk=True’参数获取单个分区IO个数、读写信息。

4.Network信息

psutil.net_io_counters(pernic=False, nowrap=True)
获取网络总的IO信息,默认pernic=False。pernic=True输出每个网络接口的IO信息。
psutil.net_connections(kind=‘inet’)
网路连接信息
psutil.net_if_addrs()
网卡信息,网卡名、64位IP地址,32位IP地址、Mac地址。
psutil.net_if_stats()
网卡状态

5.Sensors信息

psutil.sensors_temperatures(fahrenheit=False) 温度信息psutil.sensors_fans() 风扇信息
psutil.sensors_battery() 电池信息

6.其他信息

psutil.boot_time() 返回当前登录系统的用户信息
psutil.users() 获取开机时间,以Linux时间戳格式返回

12.logging模块

#   日志级别
# CRITICAL 50
# ERROR    40
# WARNING  30
# INFO     20
# DEBUG    10
logging.basicConfig()函数中的具体参数:
filename:   指定的文件名创建FiledHandler,这样日志会被存储在指定的文件中;
filemode:   文件打开方式,在指定了filename时使用这个参数,默认值为“w”还可指定为“a”;
format:      指定handler使用的日志显示格式;
datefmt:    指定日期时间格式。,格式参考strftime时间格式化(下文)
level:        设置rootlogger的日志级别
stream:     用指定的stream创建StreamHandler。可以指定输出到sys.stderr,sys.stdout或者文件,默认为sys.stderr。若同时列出了filename和stream两个参数,则stream参数会被忽略。

输出日志到文件:

# -*-coding:utf-8-*-import loggingdef console_out(logFilename):''''' Output log to file and console '''# Define a Handler and set a format which output to filelogging.basicConfig(level=logging.DEBUG,  # 定义输出到文件的log级别,大于此级别的都被输出format='%(asctime)s  %(filename)s : %(levelname)s  %(message)s',  # 定义输出log的格式datefmt='%Y-%m-%d %A %H:%M:%S',  # 时间filename=logFilename,  # log文件名filemode='w')  # 写入模式“w”或“a”# Define a Handler and set a format which output to consoleconsole = logging.StreamHandler()  # 定义console handlerconsole.setLevel(logging.INFO)  # 定义该handler级别formatter = logging.Formatter('%(asctime)s  %(filename)s : %(levelname)s  %(message)s')  # 定义该handler格式console.setFormatter(formatter)# Create an instancelogging.getLogger().addHandler(console)  # 实例化添加handler# Print information              # 输出日志级别logging.debug('logger debug message')logging.info('logger info message')logging.warning('logger warning message')logging.error('logger error message')logging.critical('logger critical message')if __name__ == "__main__":console_out('logging.log')

python常用模块相关推荐

  1. 实战篇一 python常用模块和库介绍

    # -_-@ coding: utf-8 -_-@ -- Python 常用模块和库介绍 第一部分:json模块介绍 import json 将一个Python数据结构转换为JSON: dict_ = ...

  2. python常用模块大全总结-常用python模块

    广告关闭 2017年12月,云+社区对外发布,从最开始的技术博客到现在拥有多个社区产品.未来,我们一起乘风破浪,创造无限可能. python常用模块什么是模块? 常见的场景:一个模块就是一个包含了py ...

  3. 对于python来说、一个模块就是一个文件-python常用模块

    python常用模块 什么是模块? 常见的场景:一个模块就是一个包含了python定义和声明的文件,文件名就是模块名字加上.py的后缀. 但其实import加载的模块分为四个通用类别: 1 使用pyt ...

  4. python常用模块之shelve模块

    python常用模块之shelve模块 shelve模块是一个简单的k,v将内存中的数据通过文件持久化的模块,可以持久化任何pickle可支持的python数据类型 我们在上面讲json.pickle ...

  5. Python常用模块——目录

    Python常用模块学习 Python模块和包 Python常用模块time & datetime &random 模块 Python常用模块os & sys & sh ...

  6. Python常用模块集锦

    常用模块主要分为以下几类(缺失的后续再补充): 时间转换 时间计算 序列化和反序列化:json,pickle 编解码:unicode,base64 加解密:md5,sha1,hmac_sha1,aes ...

  7. Python+常用模块(2).md

    Python 常用模块 1. random模块 1.1 导入模块 import random 1.2 random.random() 生成一个从0到1的随机浮点数 1.3 random.uniform ...

  8. python用什么来写模块-Python常用模块——模块介绍与导入

    Python常用模块--模块介绍与导入 一.什么是模块? 在计算机程序的开发过程中,随着程序代码越写越多,在一个文件里代码就会越来越长,越来越不容易维护. 为了编写可维护的代码,我们把很多函数分组,分 ...

  9. Python 常用模块总结

    Python 常用模块总结 1.random 2.math 3.os 4.os.path 5.sys 6.hashlib 7.hmac 8.time 9.datetime 10.calendar 11 ...

  10. python常用模块-调用系统命令模块(subprocess)

    python常用模块-调用系统命令模块(subprocess) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. subproces基本上就是为了取代os.system和os.spaw ...

最新文章

  1. 谢文睿:西瓜书 + 南瓜书 吃瓜系列 9. 集成学习(上)
  2. LeetCode_Pascal's Triangle_杨辉三角形(Java实现)
  3. linux日记的监控与分析,linux下apache日志监控与分析——webalizer与awstat
  4. 模拟windows任务管理器列举系统进程,并关闭进程......
  5. @builder注解_SpringBoot 整合SpringSecurity示例实现前后分离权限注解+JWT登录认证
  6. 45:十进制到八进制(OpenJudge在线题库 :NOI / 1.13编程基础之综合应用)
  7. 理论基础 —— 索引 —— 2-3 树
  8. 一文带你从零认识什么是XLA
  9. Castle ActiveRecord学习笔记四:各种映射
  10. linux gdb检查函数栈,Linux - gdb调试
  11. python打开鼠标指定文件夹_学会python文件操作,鼠标好像没用了,学习python第10天...
  12. 第一个 Shell脚本
  13. 【C语言】学生打卡系统(完整代码)
  14. ios共享账号公众号_新增iOS应用账号共享09
  15. SegNet论文笔记
  16. LTE技术派报告:LTE抛弃了CDMA?
  17. NAND Flash(spi nand flash和nand flash)和emmc以及ufs通过uboot烧写固件的一些差异
  18. k8s简单集群搭建和应用(包括虚拟机的开启)①
  19. 我国数字经济规模增值世界第一,宝付发力支付+SaaS
  20. 区分电角度和机械角度

热门文章

  1. CSS模拟微信对话框
  2. 如何在vue-cli中配置amazeui的vue版本
  3. Amaze UI后台管理模板 v2.7.2
  4. 深度探索C++对象模型复习和学习 第三章 Data 语义学(The Semantics of Data )
  5. 济南铃木UU125无破线改装仪表盘详解
  6. codesys 串口通讯实例_CodeSys如何实现串口通信
  7. 【恩智浦杯(飞思卡尔)全国大学生智能汽车竞赛】解读部分北科技术报告图像处理内容(点到为止)
  8. Elasticsearch(三)使用 Kibana 操作 ES
  9. 【CGAL_空间搜索与排序】3D快速求交和距离计算
  10. 怎么提高企业微信加人的通过率,让企业微信加更多客户?快速加人,引流拓客有什么技巧(企微运营干货)