美文网首页
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-总结

    python中的pygame 直接上代码(实用型模块) 显示文本 显示图片import pygameimport ...

  • Day12- 总结

    01-json数据 1.什么是json数据 json是一种数据格式,满足json格式的数据就是json数据。文件后...

  • day12-总结

    json数据 1.什么是json数据json是一种数据格式,满足json格式的数据就是json数据。文件后缀是.j...

  • Day12-总结

    一.文件操作 1.数据持久化(数据本地化) 计算机内存分为硬盘和运行内存。当运行程序的时候系统会自动在运行内存中开...

  • day12-课后总结

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

  • day12-课堂总结

    1.什么是json数据 json是一种数据格式,满足json格式的数据就是json数据。文件后缀是.json,并且...

  • 前端学习day12-总结

    关键词:scope 一 . th > scope 语法: col: 规定单元格是列的表头。 ...

  • 21天E战到底学习笔记Day12

    21天E战到底学习笔记Day12-逻辑函数(If、And、Or) 今天是E战到底特训营的第十二天了,很快特训营...

  • day12-重定向-笔记

    Day12-重定向 导读 昨日回顾1.特殊权限SUID2.特殊权限SGID3.特殊权限SBIT4.特殊属性5.默认...

  • 十号#百日生涯营#Day12

    Day12-钱包日【百日生涯营DAY12】 任务来啦: 钱包日:我们怎么对待我们的钱,钱就是怎么对待我们的。畅想了...

网友评论

      本文标题:Day12-总结

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