美文网首页
文件和异常处理

文件和异常处理

作者: jealousl | 来源:发表于2018-03-31 08:46 被阅读0次

文件

在Python之中读写一个文件我们使用它的内置函数open来进行操作。

写读写文件如下:

读文件时需要注意的是encoding的参数指定编码(写文件也同理):

# 第一种读取文件方式
    fs = open('hello.txt', 'r', encoding='utf-8')
    # 读所有的东西
    content = fs.read()
    print(content)
    fs.close()

# 第二种读取文件方式
    # 使用with op () as name: 的时候可以不用close
    with open('../abc/hello.txt', 'r', encoding='utf-8') as fs:
        # ./ abc找到本目录的abc   ../abc 找到上一级目录的abc    ../../找到上上级目录中的文件

        # 将文件用数组保存
        mylist = fs.readlines()
        print(mylist)

写文件:

# 异常机制  -  处理程序在运行过程中出现的意外状况的手段
# 因为不是所有的问题都能够在写程序调试程序的售后就能发现

#  代开文件 ---->    判断大小 ---->   分配内存 ---->  读取文件 ----->  关闭文件


def main():
    try:
        with open('hello.txt', 'w', encoding='utf-8') as fs:  # w完全改写文件  a表示追加问价
            fs.write('我想做燕子\n')
            fs.write('想做一只风中的野狼\n')
            fs.write('我想吃兔子')
    except FileNotFoundError as e:
        print(e)
        print('指定的文件无法打开')
    except IOError:
        print('读写文件时错误')
    print('程序执行结束.')


if __name__ == '__main__':
    main()

我们同样也可以读取一个二进制的文件wb,rb

def main():
    try:
        with open('../abc/mm.jpg', 'rb') as fs:  # 读取一个二进制的文件,这个时候就可以不用encoding
            data = fs.read()  # 将读取的数据保存在data中
            print(type(data))
        with open('../efg/girl.jpg', 'wb') as fs2:  # 写一个二进制的文件
            fs2.write(data)  # 将data写入girl.jpg中
    except FileNotFoundError as e:
        print(e)
        print('指定的文件无法打开')
    except IOError:
        print('读写文件时错误')
    print('程序执行结束.')


if __name__ == '__main__':
    main()

json文件

当我们想要将列表或者字典类的数据进行保存的时候,就要使用Json的格式进行保存数据

{
        'name': 'ljl',
        'age': 18,
        'qq': 111222,
        'friends': ['李元芳', '王大锤'],
        'car': [
            {'brand': 'auto', 'speed': 120},
            {'brand': 'Benz', 'speed': 160},
            {'brand': 'QQ', 'speed': 100}
        ],
        'num': [[123, 321], [456, 654], [789, 987]]
    }

从上面我们可以看出,Json中的数据类型和Python中的数据类型很容易找到对应的关系,如下图:




我们就可以使用Python中的json来保存json格式的数据文件:

import json


def main():
    mydict = {
        'name': 'ljl',
        'age': 18,
        'qq': 111222,
        'friends': ['李元芳', '王大锤'],
        'car': [
            {'brand': 'auto', 'speed': 120},
            {'brand': 'Benz', 'speed': 160},
            {'brand': 'QQ', 'speed': 100}
        ],
        'num': [[123, 321], [456, 654], [789, 987]]
    }
    try:
        with open('data.json', 'w', encoding='utf-8') as fs:
            json.dump(mydict, fs)  # 上传数据
    except IOError as e:
        print(e)
    print('加载完成')


if __name__ == '__main__':
    main()

Json中有4个比较重要的模块:

dump - 将Python对象按照JSON格式序列化到文件中
dumps - 将Python对象处理成JSON格式的字符串
load - 将文件中的JSON数据反序列化成对象
loads - 将字符串的内容反序列化成Python对象
import requests
import json


def main():
    resp = requests.get('http://api.tianapi.com/meinv/?key=Key&num=10')  # 得到url
    mydict = json.loads(resp.text)  # 将设置需要得到的文件格式
    for tempdict in mydict['newslist']:  # 利用循环取出字典中的每一个值
        pic_url = tempdict['picUrl']  # 得到列表中的某一个字段
        resp = requests.get(pic_url)  # 请求得到该数据
        filename = pic_url[pic_url.rfind('/') + 1:]  # 得到需要的文件名
        try:
            with open(filename, 'wb') as fs:
                fs.write(resp.content)  # 保存数据  可以是文本也可以是二进制的数据
                print("下载完成")
        except IOError as e:
            print(e)


if __name__ == '__main__':
    main()

相关文章

  • 文件和异常处理

    文件 在Python之中读写一个文件我们使用它的内置函数open来进行操作。 写读写文件如下: 读文件时需要注意的...

  • 同步或异步异常处理

    同步或异步异常处理 同步读取异常处理 异步读取文件异常处理

  • Python 文件处理

    Python 读文件处理 1. readline() with 处理开闭文件&文件异常处理 readline()内...

  • C++异常

    异常处理 头文件中定义了异常类exception和bad_exception,异常类exce...

  • python json文件和异常处理

    一、复习 1.容器类型列表:[元素];可变的,有序;任意类型;增删改查字典:{键值对}; 可变的, 无序;key不...

  • 统一异常返回404拦截处理

    yml文件配置 异常拦截处理

  • day12-课后总结

    json文件和异常处理 1.文件操作 a.打开文件和关闭文件的缩写 说明:打开文件,执行完文件操作相关代码后,会自...

  • 异常和异常处理

    异常 在以前的代码中已经看过异常。通常错误的代码或输入会引发异常。发生异常时,程序立即停止。 下面的代码通过尝试将...

  • Python学习5

    第10章 文件和异常 处理异常和文件,你在本章学习的技能可提高程序的适用性、可用性和稳定性。 10.1 从文件中读...

  • python 异常处理

    异常处理 文件的读取-->try except finally

网友评论

      本文标题:文件和异常处理

      本文链接:https://www.haomeiwen.com/subject/qiwxcftx.html