美文网首页
Python-学习之路-13 file 文件

Python-学习之路-13 file 文件

作者: 末世狂人 | 来源:发表于2019-02-26 23:16 被阅读0次

文件

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

open 函数

  • open函数负责打开文件
    • 参数
        1. 文件的路径和名称
        1. mode:文件用什么方式打开
        • r:只读方式
        • w:写入方式,写入的内容会覆盖以前的内容(如果没有文件,则创建)
        • x:创建方式打开,创建一个新文件,并保存.(如果文件已经存在,则会报错)
        • a(append):追加方式,以追加的方式写入内容
        • b(binary):二进制方式写入
        • t:文本方式打开
        • +:可读写
# 打开文件,用写的形式
# f称之为文件句柄
f = open("test01.txt",'w')
#文件打开之后必须关闭
f.close()

with 语句

  • with语句使用的技术是一种成为上下文管理协议技术(ContextManagementProtocal)
  • 自动判断文件的作用域,自动关闭不在使用的文件句柄
# with语句案例
with open(r"test01.txt",'r') as f1:
    # 按行读取内容
    strline = f1.readline()
    # 这种结构能够保证完整的读取文件直到结尾
    while strline:  
        print(strline)
        strline = f1.readline()
        
print("方法二")        
    
with open(r"test01.txt",'r') as f2:      
    # 全部读取(如果文件过大,不推荐此方法)
    strlines = f2.readlines()
    for sl in strlines:
        print(sl)
人生若只如初见

何事秋风悲画扇

等闲变却故人心

却道故人心易变

方法二
人生若只如初见

何事秋风悲画扇

等闲变却故人心

却道故人心易变
# read 按字符读取文件内容
# 允许输入参数巨鼎读取机制字符,如果没有制定,从当前位置读取到结尾
# 否则.从当前位置读取到指定个数字符

with open(r'test01.txt','r') as f:
    strChar = f.read(7)
    print(strChar)
人生若只如初见
with open(r'test01.txt','r') as f:
    strChar = f.read(1)
    while strChar:
        print(strChar,end = "")
        strChar = f.read(1)
人生若只如初见
何事秋风悲画扇
等闲变却故人心
却道故人心易变

seek (offset,from)

  • 移动文件的读取位置.也叫读取指针
  • from的取值范围
    • 0:从文件头开始偏移
    • 1:从文件当前位置开始偏移
    • 2:从文件尾开始偏移
  • 移动的单位是字节(byte)
# seek 案例
# 打开问价后,从第五个字节开始读取
with open(r'test01.txt','r') as f:
    f.seek(6,0)
    strChar = f.read()
    print(strChar)
若只如初见
何事秋风悲画扇
等闲变却故人心
却道故人心易变

tell 函数

  • 用来显示文件读写指针的当前位置
  • 返回数字的单位是byte
# tell
with open(r'test01.txt','r') as f:
    strChar = f.read(7)
    index = f.tell()
    while strChar:
        print(index)
        print(strChar)
        strChar = f.read(8)
        index = f.tell()
21
人生若只如初见
43

何事秋风悲画扇
65

等闲变却故人心
87

却道故人心易变
88

write 文件的写操作

  • write(str):把str写入文件
  • writeline(str):把str按行写入文件
  • 区别
    • write:函数参数只能是字符串
    • writeline:参数可以使字符串,也可以是字符序列
# write 案例
with open(r'test01.txt','w') as f:
    f.write("昨夜雨疏风骤, \n浓睡不消残酒")
    # 需手动添加换行符
    strList = ["试问卷帘人\n","却道海棠依旧\n","知否知否\n","应是绿肥红瘦"]
    f.writelines(strList)

pickle 持久化

  • 序列化:把程序运行中的信息保存在磁盘上
  • 反序列化:序列化的逆过程
    • pickle:python的序列化模块(注意 这是一个模块)
    • pickle.dump:序列化
    • pickle.load:反序列化

shelve 持久化工具

  • 类似字典,用kv对保存数据,存取方式跟字典类似
  • 方法:
    • open
    • close
  • shelve一旦打开,必须停止.所以在读取的时候,最好加上try,以便在读取时,读取到没有定义的key时报错导致没有执行close
  • shelve不支持多个应用并行写入
    • 为了解决这个问题,open的时候可以使用flage = r
  • 写回问题
    • 不会等待持久化对象进行任何修改
    • 解决方法,强制写回:writeback = True
# shelve案例
import shelve

#写入
shv = shelve.open(r'shv.db')
shv['one'] = 1
shv['tow'] = 2
shv['three'] = 3
shv.close()

# 读取
shv = shelve.open(r'shv.db')
print(shv["one"])
print(shv["tow"])
print(shv["three"])
1
2
3

相关文章

  • Python-学习之路-13 file 文件

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

  • python文件

    Python-文件相关操作 open() open(filename, mode) 返回一个文件对象fileobj...

  • Python文件操作

    Python-文件相关操作 open() open(filename, mode) 返回一个文件对象fileobj...

  • go 文件操作

    File 建立File内存地址 打开文件 写文件 读文件 删除文件 判断文件是否存在 file写文件 file读文...

  • Python-[IOError] no such file or

    今天早上跑一个代码段,如下,发现出现了no such file or directory, debug 了一下,发...

  • java io之File类

    java io之File文件操作 新建File对象 File file = new File("文件路径以及名称...

  • Java IO学习笔记一

    Java IO学习笔记一 File File是文件和目录路径名的抽象表示形式,总的来说就是java创建删除文件目录...

  • I/O流之File

    I/O流 File File 文件对象: File 可以表示一个文件夹 File 可以表示为一个文件 但是File...

  • xcode 相关

    新建 .pch 文件 File > New > File > iOS > Other > PCH File文件名为...

  • Java-I/O学习(4)

    Java-I/O学习(4) File Java IO 的File类可以帮助你访问底层的文件系统,使用File类你可...

网友评论

      本文标题:Python-学习之路-13 file 文件

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