zoukankan      html  css  js  c++  java
  • python文件操作及异常处理,json文件操作

    一、python文件的简单操作

    1、任何时候使用文件必须先打开文件,一般是用with open进行操作,单单使用open可能某些时候忘了关闭文件。

    2、文件路径需要明确,当使用多个文件夹进行模块化调用的时候,还需要拼接路径,找到父路径。

    3、全部加载与逐行读取

    4、文件写入

    ******文件操作********
    #文件打开和读取方法
    path = 'H:mods.txt'
    with open(path,encoding='utf8') as file_object:   #用with打开文件,必要时需要定义字符集
        file_object = file_object.read()              #read读取文件内容(大文件时不推荐这种方式)
        print(file_object.strip())                    #strip 去除两端的空白,当然还有rstrip() lstrip()
    
    path = 'H:mods.txt'
    with open(path, encoding='utf8') as file_object:
        file_object = file_object.readlines()
        for line in file_object:                       #按行读取,读一行打印一行,不占用内存,大文件可用
            print(line.strip())
    #文件写入方法
    1、‘w’ 写入时会删除文件中原有的内容重新写入
      ‘w+’只写不读
    with open('test','w',encoding='utf8') as file_object:
        file_object.write('oracle是关系型数据库,redis是非关系型数据库
    ')          #不要忘记指定换行符
    
        file_object.write('i love you
    ')
    
    #>>>oracle是关系型数据库,redis是非关系型数据库
    #        i love you
    
    2、‘a’ (append) 在原本内容基础上追加内容  
       'a+'只加不读
    with open('test','a',encoding='utf8') as file_object:
        file_object.write('oracle是关系型数据库,redis是非关系型数据库
    ')
        file_object.write('i love you
    ')
    
    #>>>oracle是关系型数据库,redis是非关系型数据库
    #        i love you
    #       oracle是关系型数据库,redis是非关系型数据库
    #        i love you
    
    3、‘r+’ 可写可读
    with open('test','r+',encoding='utf8') as file_object:
        file_object.write('oracle是关系型数据库,redis是非关系型数据库
    ')
        file_object.write('i love you
    ')
        for line in file_object:
            print(line.strip())

    二、异常处理

    except: #捕获所有异常

    except: <异常名>: #捕获指定异常

    except:<异常名1,异常名2):捕获异常1或者异常2

    except:<异常名>,<数据>:捕获指定异常及其附加的数据

    except:<异常名1,异常名2>:<数据>:捕获异常名1或者异常名2,及附加的数据库

    常用异常名:

    异常名    描述
    AttributeError 调用不存在的方法引发的异常
    EOFError     遇到文件末尾引发的异常
    ImportError 导入模块出错引发的异常
    IndexError     列表越界引发的异常
    IOError     I/O操作引发的异常,如打开文件出错等
    KeyError   使用字典中不存在的关键字引发的异常
    NameError 使用不存在的变量名引发的异常
    TabError 语句块缩进不正确引发的异常
    ValueError 搜索列表中不存在的值引发的异常
    ZeroDivisionError   除数为零引发的异常

    例:

    while True:
        a,b= input('a/b')
        try:
            an = int(a) / int(b)
        except ZeroDivisionError:     #除数不为0异常
            print('b is not 0')    #用pass可以不显示错误,但这并不是该用的
        else:                         
            print(an)          #如果没有异常则运行

     三、json模块

    1、dump

    import json
    data = {'name':'abc','age':18}         #这里可以input用户交互
    filename = 'users.json'          #创建一个json名
    with open (filename,'r+') as object:  #读/写状态必须有
        json.dump(data,object)
        print(data)

    2、load

    import json
    with open('users.json','r') as object:  #对上面的user.json读取
        file = json.load(object)        
        print(file)
  • 相关阅读:
    蚁群算法(AntColonyOptimization,ACO)与TSP问题
    EASY-X
    扩展欧几里得
    堆,set,优先队列
    单链表的几个基本操作
    剑指offer JZ-20
    剑指offer JZ-19
    拉普拉斯机制下的差分隐私(1)
    剑指offer JZ-17
    剑指offer JZ-16
  • 原文地址:https://www.cnblogs.com/zsf-note/p/11022270.html
Copyright © 2011-2022 走看看