• devi into python 笔记(五)异常 文件操作 sys os glob模块简单实用


    异常:

      
      Java异常:
        try catch块处理异常,throw引发异常。

      Python异常:
        try except块处理异常,raise引发异常。
      异常如果不主动处理,则会交给Python中的缺省处理,终止程序。所以应该在可预见的地方添加try except块,比如打开文件时没有文件,链接数据库时不可链接等等。

        #使用多个except处理不同的异常
        #缺省的except要在末尾
        #else表示如果没有任何异常发生则执行else的语句
        try:
            f = open("xxx", "r")
        except KeyError:
            print 'key error'
        except IOError:
            print 'io'
        except:
            print 'default'
        else:
            print 'tongguo'
        #try except块执行后顺序执行其他代码
        print 'end'
    
        #try except可嵌套使用
        try:
            pass
        except:
            try:
                pass
            except:
                pass
        else:
            print "No Error"

    =============================
    文件:
      打开文件,读取文件内容:open用来打开磁盘上的文件,返回一个文件对象。

        f = open("fileinfo.py", 'a')
        #一些文件对象的属性
        #print type(f), f.mode, f.name
    
        #tell返回文件指针位置,现在我们只是打开什么也没做
        print f.tell()
    
        #seek移动指针到指定位置。第二个参数表明第一个参数是什么意思
        #0表示移动到绝对位置(从文件开头算起)
        #1表示移动到相对位置(从当前位置算起)
        #2表示从文件末尾开始算起
        f.seek(10, 0)
        print f.tell()
        
        #读出文件全部内容
        print f.read()

      关闭文件:close关闭文件。一是消耗资源,二是其他程序不能访问他们(取决于文件打开的模式)

        f = open("fileinfo.py", "r")
        #文件对象的closed属性表示文件对象是否关闭了文件
        print f.closed
    
        f.close()
        #虽然fileinfo.py这个文件被关闭了,但是这不意味着文件对象不存在了,f将继续存在直到被回收或手动删除。这样一来再用f操作文件的函数就会引发异常。
        print f, f.closed
        try:
            f.tell()
        except:
            print "error"

      使用try finally块,处理IO错误:

        #try finally块保证无论是否有异常,finally块中的代码一定执行,用来关闭文件
        #try except块与try finally块结合使用:
        try:
            #如果这一步没出现异常,那么文件将被打开。
            #一旦文件打开成功,最后就要关闭它所以这里用try finally块
            f = open('fileinfo.py', 'r', 0)
            try:
                f.seek(-128, 2)
                print f.read(128)
            finally:
                f.close()
        except:
            pass

      写入文件:追加append,写入覆盖write,文件不存在则创建之

        #两种写模式:追加(a) 和 写入覆盖(w)。
        #如果文件不存在,两种都会自动创建文件。
        f = open('a.txt', 'a+')
        #f = open('a.txt', 'w')
        f.write('aaa')
        f.close()

       sys、os、glob模块的简单使用:

        import sys
        #sys.modules:
        #返回所有被导入到当前文件的模块
        print '
    '.join(sys.modules)
    
        import os
        #os.path.split:
        #分割path,返回路径和文件全名的tuple
        (filepath, filename) = os.path.split("c:/a/b/c.txt")
        print (filepath, filename)
    
        #os.path.splitext:
        #分割文件全名,返回文件名和扩展名的tuple
        (shortname, extension) = os.path.splitext(filename)
        print (shortname, extension)
    
        #os.listdir:
        #返回list,列出给定目录下所有内容,但不能区分是文件还是文件夹
        #这里 . 表示列出当前目录
        print os.listdir(".")
    
        #os.path.isfile:
        #判断是否为文件,是文件返回True,不是返回False
        print [f for f in os.listdir('.') if os.path.isfile(f)]
        #os.path.isdir:
        #判断是否为目录,是目录返回True,不是返回False
        print [d for d in os.listdir('.') if os.path.isdir(d)]
    
        #os.path.join:
        #连接两个path为一个完整目录
        print os.path.join('path', 'file')
    
        import glob
        #glob.glob:
        #1返回目录下所有文件或目录的 "完整" 路径
        #2可以接受通配符*来匹配所有相应文件
        print os.listdir("./")
        print glob.glob("./*")
  • 相关阅读:
    Docker管理应用数据
    Docker Swarm mode
    Docker Compose file
    Docker Compose 多容器应用
    MySQL中ORDER BY与LIMIT一起使用(有坑)
    Docker for Java Developers
    Nifi 模板
    Nifi InvokeHttp processor
    Mac上连接nifi
    前端开发环境webstorm搭建
  • 原文地址:https://www.cnblogs.com/lipijin/p/3171633.html
Copyright © 2020-2023  润新知