Python从入门到进阶(十六)——操作系统和环境

一 OS模块

  1. python中内置了一个操作系统相关的模块
os模块

这个模块提供了多数操作系统的功能接口函数。在不同系统执行时,os模块会自适应于不同的操作系统平台,调用不同的接口;
2. 导入os模块:

import os
  1. 常用命令:
获取系统名称 os.name
获取当前工作目录 ;os.getCwd()
执行命令: os.system(‘命令行’)

文件和文件夹相关:
os.remove(path) 删除指定的文件
os.rename(src,dest) 重命名文件或目录
os.stat(path) 返回文件的所有属性
os.listdir(path) 返回path目录下的文件和目录列表
os.mkdir(path) 创建目录
os.makedirs(path1/path2/path3/…) 创建多级目录
os.rmdir(path) 删除目录
os.removedirs(path1/path2/path3/…) 删除多级目录

路径相关函数:
os.path.isabs(path) 判断path是否是绝对路径
os.path.isdir(path) 判断path是否为目录
os.path.isfile(path) 判断path是否为文件
os.path.exists(path) 判断指定路径的文件是否存在
os.path.getsize(filename) 返回文件大小
os.path.abspath(path) 返回绝对路径

二 platform模块

platform模块也是系统内置模块,给我们提供了很多方法去获取操作系统的信息

参考以下注释信息:

import platform
platform.platform() #获取操作系统名称及版本号,
platform.version() #获取操作系统版本号,
platform.architecture() #获取操作系统的位数
platform.machine() #计算机类型,
platform.node() #计算机的网络名称,
platform.processor() #计算机处理器信息,
platform.uname() #包含上面所有的信息汇总

三 扩展第三方库psutil

psutil是一个跨平台库能够轻松实现获取系统运行的进程和系统利用率(包括CPU、内存、磁盘、网络等)信息。它主要用来做系统监控,性能分析,进程管理。它实现了同等命令行工具提供的功能,如ps、top、lsof、netstat、ifconfig、who、df、kill、free、nice、ionice、iostat、iotop、uptime、pidof、tty、taskset、pmap等。
官网地址:http://pythonhosted.org/psutil/
安装方式: pip install psutil

示例代码:

import psutil
import time
import os 
class testpsutil(object):

    def testsp(self):
        monitor_name=set(['httpd','keepalived']) # 用户指定的监控的服务进程名称
        monitor_map={
            'httpd':'systemctl restart httpd',
            'keepalived':'systemctl restart keepalived' # 系统在进程down掉后,自动重启
            }
        proc_dict={}
        proc_name=set() # 系统检测的进程名称
        while True:
            for proc in psutil.process_iter(attrs=['pid','name']):
                proc_dict[proc.info['pid']]=proc.info['name']
                proc_name.add(proc.info['name'])
            # 通过集合的形式来找出停掉的进程名,前者有但是后者没有
            proc_stop=monitor_name-proc_name
            # 如果确实有监控的进程停掉了 需要自动重启功能
            if proc_stop:
                for p in proc_stop:
                    p_name=p
                    # 执行重启命令,然后判断是否重启成功
                    os.system(monitor_map[p_name])
        

四 Python操作系统信息

1.提示用户输入选项,输出对应选项类型的平台信息

def select(self,config):
        # 交互式选择程序
        print(config['options_tip'])
        options=config['options']

        selects=[]
        for key in options:
            desc=options[key]["desc"]
            selects.append(key)
            print(f"*{key}:{desc}")
        print()

        input_tip=config['input_tip']
        select_tip='/'.join(selects)
        tip=f'{input_tip}[{select_tip},按q退出]:'

        while True:
            key=input(tip)
            if key=='q':
                break

            option=options.get(key)
            if(option):
                desc=option['desc']
                print(f'@{desc}:')
                option['action']()
            else:
                print('[错误]不支持的选项')
    
    def dump(self,tip,value):
        # 打印提示
        print(tip+':')
        print(value)
        print()

    def dump_basic_info(self):
        # 打印基础信息
        self.dump('os.name',os.name)
    
    def dump_path_info(self):
        # 打印路径信息
        self.dump('os.getcwd()',os.getcwd())
        self.dump('os.get_exec_path()',os.get_exec_path())

    def dump_env_info(self):
        self.dump('os.environ',os.environ)

psu=testpsutil.testpsutil()
    psu.select({
        'options_tip':'通过platform可以查询一些信息',
        'input_tip':'请输入你感兴趣的信息',
        'options':{
            'b':{
                'desc':'b is basic,系统基本信息',
                'action':psu.dump_basic_info
                },
            'p':{
                'desc':'p is path,路径信息',
                'action':psu.dump_path_info
                },
            'e':{
                'desc':'e is env,环境信息',
                'action':psu.dump_env_info
                }
            }
        })
  1. 提示用户输入选项,输出对应选项类型的平台信息
class pcpu():
    def select(self,config,show_info):
        print(config['options_tip'])
        selects=[]
        for key in config['options']:
            option=config['options'][key]
            selects.append(key)
            print(f'{key}:{option}')

        tip=f"{config['input_tip']}[{'/'.join(selects)},按q退出]:"
        while True:
            key=input(tip)
            if key=='q':
                break
            else:
                show_info(key)
                print()

    def test(self):
        def show_info(key):
            if key=='p':
                # 打印平台信息
                print(platform.architecture())
                print(platform.platform())
                print(platform.processor())
                print(platform.machine())
            elif key=='py':
                # 打印Python信息
                print(platform.python_build())
                print(platform.python_implementation())
                print(platform.python_compiler())
                print(platform.python_version())
        self.select({
            'options_tip':'通过platform可以查询一些信息',
            'input_tip':'请输入你感兴趣的信息',
            'options':{
                'p':'p is platform,平台信息',
                'py':'py is python,Python信息'
                },
            },show_info)

if __name__ == '__main__':
    pcpu=testpsutil.pcpu()
    pcpu.test()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值