python 模块

模块:  
  
    定义:一堆代码实现了某个功能的代码集合。函数式编程完成一个功能,  
    示例:os 是操作系统的模块   
    分类:自定义模块/内置模块200个/开源模块 pypi.python.org  
    安装第三方模块:pip install/easy install/download package ---- python setup.py install/download  
    自定义模块:  
        __init__.py的目录就是自定义模块  
    好处:功能复用/解耦/可扩展性可维护性  
    调用方式:from #module name import function name  
  
内置模块:  
      
    time datetime模块  
      
        import time,datetime  
        print time.time() #1563521388.25  
        print time.ctime() #Fri Jul 19 15:29:48 2019  
        print time.gmtime() # time.struct_time(tm_year=2019, tm_mon=7, tm_mday=19, tm_hour=7, tm_min=30, tm_sec=32, tm_wday=4, tm_yday=200, tm_isdst=0)  
        print time.localtime() #time.struct_time(tm_year=2019, tm_mon=7, tm_mday=19, tm_hour=15, tm_min=46, tm_sec=39, tm_wday=4, tm_yday=200, tm_isdst=0)  
        print time.mktime(time.localtime())  
        print time.strftime("%Y-%m-%d")  
        print time.strptime("2019-07-02","%Y-%m-%d")  
  
        print datetime.datetime.today() #2019-07-19 15:57:40.639000  
        print datetime.datetime.now() #2019-07-19 15:57:40.639000  
        print datetime.datetime.now().timetuple()  
  
    random模块  
      
        import  random  
        print random.random() #0.404556204712  
        print random.randint(1,100) #40  
        print random.randrange(1,200) #79  
  
        check_code = ""  
        for i in range(4):  
  
            currnet = random.randint(0,10)  
            check_code = check_code + str(currnet)  
        print check_code  
  
    os  
      
        # -*- coding:utf-8 -*-  
        import os  
        #这个模块主要是用来和OS进行交互的一堆混杂的方法在里面 更高级的模块还有shutil  
        #主要有os.path判断文件相关的东西  还可以os.system os.popen运行一些系统命令  
        print os.getcwd()  #获取当前的目录  
        os.system(r'cd d:\')  #启动一个子shell 运行命令  
        print os.getcwd()   #所以不会有变化  
        os.chdir('d:\')  
        print os.getcwd()  
        print os.curdir  # . 为什么是.呢  
        print os.pardir  # ..  
        print os.sep  #   
        print os.stat('d:\')  #查看目录或者文件的状态信息  
        os.mkdir(r'D:\2')  #生成单级目录  
        os.rmdir(r'2')  
        os.makedirs('d:\1\2\3')  
        os.removedirs(r'd:123')  
        # print res  
        print os.listdir(os.getcwd())  
        os.rename('1','1.old')  
        print os.linesep  
        print os.environ  
        print os.path.split(os.getcwd())  
        print os.path.abspath('1.old') #绝对路径  
        print os.path.dirname('1.old') #  
        print os.path.basename('1.old') #文件名  
        print os.path.isabs('1.old')  
        print os.path.isdir('1.old')  
        print os.path.isfile('1.old')  
        print os.path.getctime('1.old')  #create time  
        print os.path.getatime('1.old') #access time  
        print os.path.getmtime('1.old') #modify time  
        res = os.popen('dir')  #可以取到返回值  
        res2 = os.system('dir') #只可以看到返回值的状态  
        print res.read()  
        print res2  
        import os  
        print os.stat('1.txt')  
      
    sys  
      
        # -*- coding:utf-8 -*-  
        import sys  
        #  这个模块主要是查看解释器相关的东西,比如运行的参数个数啊  最大的int大小啊 sys.exit 退出程序啊  
        print sys.path  #查找包的路径  
        print sys.argv  #参数  
          
    shutil  
      
        # -*- coding:utf-8 -*-  
        import  shutil  
        print dir(shutil)  
  
        f1 = open("1.txt")  
        f2 = open("2.txt",mode='w')  
        shutil.copyfileobj(f1,f2)  # 复制文件内容到2.txt  
  
        shutil.copyfile('1.txt','3.txt')  #直接文件名进行覆盖  
  
        shutil.copymode() #拷贝chmod可以改变的东西 777  
  
        shutil.copystat() #atime,mtime  
  
        shutil.copytree('/StoragePlus','/StoragePlus.bak')  #递归的拷贝  
        shutil.rmtree('/StoragePlus.bak') #递归的删除  
        shutil.make_archive("/",'gztar') #压缩文件 #tarfile zipfile用于解压  
  
  
  
    json/pickle/shelve  
      
        # -*- coding:utf-8 -*-  
        import  pickle,json,shelve  
  
        dict1 = dict(name='wyp',age='29')  
        # f = open('pickle.txt','w')  
        # pickle.dump(dict1,f) #Python对象序列化为一个字节流 从内存读取数据然后写入文件  
        f = open('pickle.txt','r')  
        dict2 = pickle.load(f) #从文件反序列存储的内容  json是所有语言通用的  只能序列化基本的数据类型  
        print dict2  
        #pickle是python独有的 可以序列化基本所有的数据类型  
  
  
        # d = shelve.open('shelve_test')  
  
        class Foo(object):  
            def __init__(self,n):  
                self.n = n  
        # f1 = Foo(1)  
        # f2 = Foo(2)  
        #  
        # d['test'] = ['1','2','3']  
        # d['t1'] = f1  
        # d['t2'] = f2  
        #  
        # d.close()  
        d = shelve.open('shelve_test')  
        print d.get('t1').n,d.get('t2').n,d.get('test')  
  
        #shelve 可以读取所有的key  而pickle只能挨次读取  
  
  
  
  
    xml:操作xml的  
      
        import  xml.etree.ElementTree as ET  
  
        tree = ET.parse("web.html")  
        root = tree.getroot()  
        print root.tag  
          
    PyYAML:操作yaml文件的  
      
        略  
          
    configParser:  
      
        用于生成和修改常见配置文档 回头实际应用吧  
      
    hashlib  
      
        MD5和SHA加密  
          
    subprocess  
      
        >>> subprocess.call('df -hT',shell=True)  
        文件系统              类型      容量  已用  可用 已用% 挂载点  
        /dev/mapper/rhel-root xfs        49G   17G   32G   35% /  
        devtmpfs              devtmpfs  3.9G     0  3.9G    0% /dev  
        tmpfs                 tmpfs     3.9G   80K  3.9G    1% /dev/shm  
        tmpfs                 tmpfs     3.9G  8.9M  3.9G    1% /run  
        tmpfs                 tmpfs     3.9G     0  3.9G    0% /sys/fs/cgroup  
        /dev/mapper/rhel-home xfs        24G   37M   24G    1% /home  
        /dev/sda1             xfs       497M  119M  379M   24% /boot  
        /dev/sr0              iso9660   4.0G  4.0G     0  100% /mnt  
        0  
          
        #Do not use stdout=PIPE or stderr=PIPE with this function as that can deadlock based on the child process output volume.   
        #Use Popen with the communicate() method when you need pipes.  
          
        >>> a = subprocess.Popen('df -hT',shell=True,stdout=subprocess.PIPE)      
        >>> a  
        <subprocess.Popen object at 0x7fabb64977d0>  
        >>> dir(a)  
        ['__class__', '__del__', '__delattr__', '__dict__', '__doc__', '__format__', '__getattribute__', '__hash__', '__init__', '__module__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', '_child_created', '_close_fds', '_communicate', '_communicate_with_poll', '_communicate_with_select', '_execute_child', '_get_handles', '_handle_exitstatus', '_internal_poll', '_set_cloexec_flag', '_translate_newlines', 'communicate', 'kill', 'pid', 'pipe_cloexec', 'poll', 'returncode', 'send_signal', 'stderr', 'stdin', 'stdout', 'terminate', 'universal_newlines', 'wait']  
        >>> a.stdout.read()  
        'xe6x96x87xe4xbbxb6xe7xb3xbbxe7xbbx9f              xe7xb1xbbxe5x9ex8b      xe5xaexb9xe9x87x8f  xe5xb7xb2xe7x94xa8  xe5x8fxafxe7x94xa8 xe5xb7xb2xe7x94xa8% xe6x8cx82xe8xbdxbdxe7x82xb9
/dev/mapper/rhel-root xfs        49G   17G   32G   35% /
devtmpfs              devtmpfs  3.9G     0  3.9G    0% /dev
tmpfs                 tmpfs     3.9G   80K  3.9G    1% /dev/shm
tmpfs                 tmpfs     3.9G  8.9M  3.9G    1% /run
tmpfs                 tmpfs     3.9G     0  3.9G    0% /sys/fs/cgroup
/dev/mapper/rhel-home xfs        24G   37M   24G    1% /home
/dev/sda1             xfs       497M  119M  379M   24% /boot
/dev/sr0              iso9660   4.0G  4.0G     0  100% /mnt
'  
        >>>   
      
    logging  
          
        import logging  
        logger = logging.getLogger("logger")  
  
        handler1 = logging.StreamHandler() #sys.stdout or sys.stderr  
        handler2 = logging.FileHandler(filename="test.log") # write to disk files  
  
        logger.setLevel(logging.DEBUG)  
        handler1.setLevel(logging.WARNING)  
        handler2.setLevel(logging.DEBUG)  
  
        formatter = logging.Formatter("%(asctime)s %(name)s %(levelname)s %(message)s")  
        handler1.setFormatter(formatter)  
        handler2.setFormatter(formatter)  
  
        logger.addHandler(handler1)  
        logger.addHandler(handler2)  
  
        # print handler1.level #30  
        # print handler2.level #10  
        # print logger.level   #10  
  
  
        logger.debug('This is a customer debug message')  
        logger.info('This is an customer info message')  
        logger.warning('This is a customer warning message')  
        logger.error('This is an customer error message')  
        logger.critical('This is a customer critical message')  
  
  
      
0719做什么:  
  
    把备份交换机程序分层  弄一个config目录出来   
  
      

  

原文地址:https://www.cnblogs.com/wanyp/p/11230341.html