美文网首页
Day12-总结

Day12-总结

作者: SheeranED | 来源:发表于2019-06-19 09:31 被阅读0次

    一.文件操作

    1.数据持久化(数据本地化)

    • 计算机内存分为硬盘和运行内存。当运行程序的时候系统会自动在运行内存中开辟空间保存运行过程
      中产生的数据;但是当程序运行的结束的时候,这个内存空间会自动销毁,所有数据也会销毁。如果
      希望数据一直存在,需要将数据存在硬盘中。
      存储到本地文件中的数据,就是存储在硬盘中的数据,就能持久化。编程中常用的文件有:txt文件、二进制文件
      (图片、视频、音频、压缩文件)、json文件、plist文件、数据库文件(.db,.sqlite)

    2.文件操作 - 文件内容的操作

    • 1.基本步骤:打开文件 - 读/写操作 - 关闭文件
    • 1)打开文件
      open(file, model='r', encoding=None) - 打开指定文件,返回文件对象
      file - 需要打开的文件路径,可以是绝对路径也可以是相对路径
      绝地路径:文件在电脑的全路径
      相对路径:./(当前目录-当前py文件所在的目录),可以省略
      ../(当前目录的上层目录)
      .../(当前目录的上层目录的上层目录)
      model - 字符串,文件打开方式;打开方式决定了打开文件后支持的操作和操作的数据的类型
      'r':默认值,只读;读出来的数据是字符串类型
      'w':只写;只能将字符串写入文件;(先删除原文件中的内容再写)
      'rb'/'br':只读;读出来的数据是二进制数据(bytes)
      'wb'/'bw':只写;只能将二进制数据写入文件;(先删除原文件中的内容再写)
      'a':只写;只能将字符串写入文件;(保留原文件内容追加)
      'ab'/'ba':只写;只能将二进制数据写入文件;(保留原文件内容追加)
      encoding - 设置文件内容的编码方式,固定写:'utf-8';只针对文本文件有效
      注意:1)只有文本操作才能设置编码方式
      2)文本文件在读和写的时候的编码方式必须一致
      windows默认的是'gbk'
    • 2)操作文件
    • a.读操作 - 获取文件中的内容
      文件对象.read() - 会返回文件中的内容
      文件对象.readline() - 读一行内容(从读写位置到一行结尾)
    • 3)关闭文件
      文件对象.close()

    绝对路径

    open('/newclass/语言基础/文件操作和异常捕获/files/test1.txt')

    相对路径

    1.打开文件

    f = open('./files/test1.txt', 'r', encoding='utf-8')
    

    2.获取文件中的内容

    对象.read() - 获取文件中所有的内容

    contend = f.read()
    print(contend)
    

    3.移动读写位置(移动光标)

    对象.seek(0) - 将读写位置移动到文件开头

    f.seek(0)
    print(f.readline())
    

    4.关闭文件

    • 一行一行的读,读完为止
    f = open('./files/test1.txt', 'r', encoding='utf-8')
    while True:
        contend = f.readline()
        if not contend:
            break
        print(contend)
    f.close()
    
    • 写操作:文件对象.write(写的内容) - 将指定的内容写入文件中

    二.数据持久化

    数据持久化:a.需要持久化的数据保存在本地文件中

             b.需要数据的时候去文件中读数据
             c.数据发生改变后将最新的数据写入文件中
    
    • 统计当前程序运行的次数
    f = open('files/num.txt', 'r', encoding='utf-8')
    num = int(f.read())
    f.close()
    
    num += 1
    print(num)
    
    f = open('files/num.txt', 'w', encoding='utf-8')
    f.write(str(num))
    f.close()
    
    • 打印账号的余额
    f = open('files/text2.txt', 'r', encoding='utf-8')
    money = int(f.read())
    f.close()
    value = int(input('1.存钱 2.取钱:'))
    if value == 1:
        money1 = int(input('金额:'))
        f = open('files/text2.txt', 'w', encoding='utf-8')
        f.write(str(money+money1))
        f.close()
    elif value == 2:
        money2 = int(input('金额:'))
        f = open('files/text2.txt', 'w', encoding='utf-8')
        f.write(str(money-money2))
        f.close()
    f = open('files/text2.txt', 'r', encoding='utf-8')
    print(money)
    f.close()
    

    三.二进制文件

    1.常见的二进制文件:图片文件、视频文件、音频文件、压缩文件

    • 不是只有二进制文件才支持'b'操作(rb,wb,ab),但是二进制文件只能采用'b'操作
      注意:所有带'b'的操作都不能设置encoding
    f = open('./files/p1tankU.gif', 'rb')
    content = f.read()
    f.close()
    f = open('files/new.gif', 'wb')
    f.write(content)
    f.close()
    

    2.文件不存在

    • 如果以读的方式打开一个不存在的文件,程序会报错
      如果以写的方式打开一个不存在的文件,程序不会报错,并且会创建该文件

    3.打开文件的简写

    • 1)语法
      with open(文件路径, 读写方式, encoding=编码方式) as 文件对象:
      文件域(操作文件)
    • 2)说明
      以这种方式打开文件,在文件域结束后,文件会自动关闭
    with open('files/test1.txt', 'r', encoding='utf-8') as f:
        print(f.read())
    

    四.json数据

    1.什么是json数据 - 满足json格式的数据

    • 1)json格式:a.一个json有且只能有一个数据 b.这个数据必须是json支持的数据类型对应的数据
    • 2)json支持的数据类型
      数字类型 - 所有的数字对应的类型,支持科学计数法;100,0.23,-23,3e4
      字符串 - 使用双引号引起来的字符集,支持转义字符和编码字符,例如:"abc"
      布尔 - 只有true和false两个值
      数组 - 相当于Python中的列表
      字典 - 相当于Python中的字典,注意:key只能是字符串
      null - 相当于Python中的None,表示空

    2.json转Python

    • 1)转换关系
      json python
      数字类型 int或者float
      字符串 字符串,双引号可能会变单引号
      布尔 bool, true -> True
      数组 list, ["abc", "true"] -> ['abc', 'True']
      字典 dict
      null None
    • 2)方法
      loads(字符串) - 将json格式的字符串转成python数据
      注意:字符串的内容必须是json格式的数据
    result = json.loads('123')  # 123
    
    result = json.loads('"abc"')  # abc
    
    result = json.loads('true')  # True
    
    result = json.loads('[false, 22]')
    

    3.python转json

    python json
    int/float 数字
    str 字符串,单引号变成双引号
    bool 布尔,True -> true
    list/tuple 数组
    dict 字典
    None null

    • 2)方法
      dumps(数据) - 将数据转换成json格式的字符串
    result = json.dumps(100)
    
    result = json.dumps('faf')
    
    result = json.dumps([22, 'sadas', [23, 'af']])
    print(result)
    result = json.dumps({'name': '小明', 'age': '15'})
    print(result)
    
    result = json.loads('{"name": "\u5c0f\u660e", "age": "15"}')
    print(result)
    

    相关文章

      网友评论

          本文标题:Day12-总结

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