美文网首页
持久化-文件

持久化-文件

作者: Yuanshuo | 来源:发表于2019-07-28 22:16 被阅读0次
The core values of Chinese socialism

文件

  • 长久保存信息的一种数据信息集合
  • 常用操作
    • 打开关闭(文件一旦打开,需要关闭操作)
    • 读写内容
    • 查找

open函数

  • open函数负责打开文件,带有很多参数
  • 第一个参数:必须有,文件的路径和名称
  • mode:表明文件用什么方式打开
    • r:以只读方式打开
    • w:写方式打开,会覆盖以前内容
    • x:创建方式打开,如文件已存在,报错
    • a:append方式,以追加的方式对文件内容进行写入
    • b:二进制方式写入
    • t:文本方式打开
    • +:可读写
# 打开文件,用写的方式
# r表示后面字符串不需要转义
# f称之为文件句柄
f = open(r"text01.txt","w")
# 文件打开后,必须关闭
f.close()

# 此案例说明,以写方式打开文件,默认是如果没有,则创建

with语句

  • with语句使用的技术是一种上下文管理协议的技术(ContextManagementProtocal)
  • 自动判断文件的作用域,自动关闭不在使用的打开的文件句柄
# with案例
with open(r"text01.txt","r") as f:
    pass
    # 下面语句块开始对文件f进行操作
    # 在本模块中不需要再使用close关闭文件
with open(r"text01.txt","r") as f:
    # 按行读取内容
    strline = f.readline()
    # 此结构保证能够完整读取文件直到结束
    while strline:
        print(strline)
        strline = f.readline()
假若他日相逢

我将何以贺你

以沉默

以眼泪
# list能用打开的文件作为参数,把文件内第一行内容作为第一个参数
with open(r"text01.txt","r") as f:
    # 以打开的文件f作为参数,创建列表
    l = list(f)
    for line in l:
        print(line)
        
假若他日相逢

我将何以贺你

以沉默

以眼泪
# read是按字符读取文件内容
# 允许输入参数决定读取几个字符,如果没有指定,从当前位置读取到结尾
# 
with open(r"text01.txt", "r") as f:
        strChar = f.read(1)
        while strChar:
            print(strChar)
            strChar = f.read(1)
假
若
他
日
相
逢


我
将
何
以
贺
你


以
沉
默


以
眼
泪

seek(offset, from)

  • 移动文件的读取位置,也叫读取指针
  • from的取值范围
    • 0:从文件头开始偏移
    • 1:从文件当前位置开始偏移
    • 2:从文件末尾开始偏移
  • 移动的单位是字节(byte)
  • 一个汉字由若干个字节构成
  • 返回文件只针对当前位置
# seek案例
# 打开文件后,从第五个字节处开始读取
with open(r"text01.txt","r") as f:
    f.seek(6, 0)
    strChar = f.read()
    print(strChar)
他日相逢
我将何以贺你
以沉默
以眼泪
# 关于读取文件练习
# 打开文件,三个字符一组读出内容,然后显示在屏幕上
# 每读一次,休息一秒钟
import time
with open(r"text01.txt", "r") as f:
    strChars = f.read(3)
    while strChars:
        print(strChars)
        time.sleep(1)
        strChars = f.read(3)
        
假若他
日相逢

我将
何以贺
你
以
沉默

以眼泪
# tell函数:用来显示文件读写指针的当前位置
with open(r"text01.txt", "r") as f:
    strChars = f.read(3)
    pos = f.tell()
    while strChars:
        print(pos)
        print(strChars)
        strChars = f.read(3)
        pos = f.tell()
# tell以字节为单位
9
假若他
18
日相逢
25

我将
34
何以贺
41
你
以
48
沉默

57
以眼泪

文件写操作-write

  • write(str):把字符串写入文件
  • writeline(str):把字符串按行写入文件
  • 区别:
    • write函数参数只能是字符串
    • writelines函数参数可以是字符串,也可以是字符序列
# write案例
with open(r"text01.txt", "a") as f:
    f.write("广阔天地\n大有作为")

持久化-pickle

  • 序列化(持久化,落地):把程序运行中的信息保存在磁盘上
  • 反序列化:序列化的逆过程
  • pickle:Python提供的序列化模块
  • pickle.dump:序列化
  • pickle.load:反序列化
# 序列化案例
import pickle
age = 19
with open(r"text01.txt", "wb") as f:
    pickle.dump(age, f)
# 反序列化案例
import pickle
with open(r"text01.txt", "rb") as f:
    age = pickle.load(f)
    print(age)    
19

相关文章

  • Redis持久化(三)

    Redis持久化方式 Redis有两种持久化的方式:快照(RDB文件)和追加式文件(AOF文件): RDB持久化方...

  • 03-redis持久化

    Redis持久化 两种方式持久化: RDB持久化 - 全量 AOF持久化 - 增量 RDB持久化 RDB文件的生成...

  • Redis-2 数据持久化及持久化配置

    一、数据持久化 开启持久化功能后,重启redis,数据会自动通过持久化文件恢复!! 1、redis持久化 – 两种...

  • iOS开发中数据持久化的总结

    数据持久化链接导航: 沙盒基本机制(sandbox) 数据持久化文件读写(plist 文件)NSUserDefau...

  • 持久化-文件

    文件 长久保存信息的一种数据信息集合 常用操作打开关闭(文件一旦打开,需要关闭操作)读写内容查找 open函数 o...

  • Redis持久化

    Redis的持久化 Redis的持久化方式有两种:快照(RDB)文件和追加文件(AOF文件) 两种方式。 RDB ...

  • GeekBand iOS开发高级进阶学习笔记(第四周)

    简易数据存储 数据持久化分为本体持久化和云端持久化本体持久化可以存在本地文件或数据库。云端可以存在iCloud,存...

  • 9. Redis RDB 持久化配置和数据恢复实验

    RDB 持久化配置 自动方式 RDB 持久化在 redis.conf 文件中配置,目前配置文件存放在 /etc/r...

  • MyBatis必知必会

    流程 创建持久化类(POJO类) 编写持久化操作的Mapper文件,其中定义SQL语句 创建配置文件:连接哪种数据...

  • Redis RDB 持久化配置和数据恢复实验

    RDB 持久化配置 自动方式 RDB 持久化在 redis.conf 文件中配置,目前配置文件存放在 /etc/r...

网友评论

      本文标题:持久化-文件

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