zoukankan      html  css  js  c++  java
  • 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目录出来   
      
          
    

      

  • 相关阅读:
    # 类和模板小结
    # Clion复制提示信息
    # IDEA相关知识
    # MySQL 笔记
    # MATLAB笔记
    # Mac地址
    # 丢包&&掉帧&&文件删除
    HDU 5744 Keep On Movin
    POJ 1852 Ants
    HDU 2795 Billboard
  • 原文地址:https://www.cnblogs.com/wanyp/p/11230341.html
Copyright © 2011-2022 走看看