file 关闭_python文件file

08971b8073f925ce89e169b2bda8fda0.png

一、文件

  • 长久保存信息,连续的字节(字符)序列
  • 文件对象
    • 内置函数
      • open(file_name,access_mode,buffering)
      • file()
    • 内置方法
      • 输出
        • read(size):从文件读取size个字节(一次最多可读取的字符(或字节)数),当未给定或给定负值的时候,读取剩余的所有字节,然后后作为字符串返回
        • readline(size):从文件中读取并返回一行(包括行结束符),或返回最大size个字符
        • readlines(sizhint=0):读取文件的所有行并作为一个列表返回(包含所有行的结束符)
      • 输入
        • write():向文件写入字符串
        • writelines():向文件写入字符串序列seq
      • 移动
        • file.seek(off,whence=0):在文件中移动文件指针,从whence(0代表文件开始,1代表当前位置,2代表文件末尾)偏移off字节
        • file.tell():返回当前文件中的位置
      • os模块
        • listdir(path):列出目录下的文件
        • getcwd():获取当前工作目录
        • chdir(newdir):改变工作目录
        • makedirs(name, mode=511, exist_ok=False):创建多级目录
        • mkdir(path):创建单个目录
        • removedirs(path):删除多个目录
        • rmdir(path):删除单个目录
        • chmod(file):修改文件权限与时间戳
        • path.split(path):分离文件名
        • path.basename(path):获取文件名
        • path.exists(path):判断文件或目录是否存在
        • path.isdir(path):判断是否是目录
        • path.isfile(path):判断是否是文件
        • path.getsize(file):获取文件大小
        • linesep:用于在文件中分隔行的字符串
        • sep:用来分隔文件路径名的字符串
        • pathsep:用于分隔文件路径的字符串
        • curdir:当前工作目录的字符串名称
        • pardir:(当前工作目录的)父目录字符串名称
      • 内置属性
        • file.close 表示文件已经被关闭,否则为False
        • file.encoding 表示文件所使用的编码
        • file.mode 表示文件打开时的范问模式
        • file.name 表示文件已经被关闭,否则为False
        • file.newlines 表示文件所采用的分隔符
        • file.softspace 为0表示在输出一数据后,要再加上一个空格符,为1表示不加,这个属性一般用不到
      • 标准文件对象
        • 标准输入
          • sys.stdin
          • sys.stdin.read() 类文件对象,可以调用文件对象的方法
        • 标准输出
          • sys.stdout
          • sys.stdout.write()
        • 标准错误
      • sys.error
      • 持久化

二、打开关闭

2.1、open函数

  • 负责打开文件,带有很多参数
  • 第一个参数(文件的路径和名称)必须有
  • 第二个参数mode:表明文件用什么方式打开
    • r:以只读方式打开
    • w:写方式打开,会覆盖之前的内容
    • x:创建方式打开,如文件已存在,报错
    • a:append方式,以追加的方式对文件内容进行写入
    • b:binary方式,二进制方式写入
    • t:文本方式打开
    • +:可读写
# 打开文件,用写的方式

2.2、with & read & readline & readlines

  • with语句使用的技术是一种称为上下文管理协议的技术
  • 自动判断文件的作用域,自动关闭不在使用的已打开的文件句柄
# with语句案例

2.3、seek(offset,from)

  • 移动文件的读取位置,也叫读取指针
  • from的取值范围:
    • 0:从文件头开始偏移
    • 1:从文件当前位置开始偏移
    • 2:从文件末尾开始偏移
  • 移动的单位是字节(byte)
  • 一个汉字由若干个字节构成
  • 返回文件只针对当前位置
# seek案例

2.4 tell()

# tell函数:用来显示文件读写指针的当前位置

2.5、文件的写操作-write

  • write(str) 把字符串写入文件
  • writeline(str) 把字符串按行写入文件
  • 区别:
    • write函数参数只能是字符串
    • writelines参数可以是字符串,也可以说字符序列
# write案例

三、持久化

3.1、持久化 - pickle

  • 序列化:把程序运行中的信息保存在磁盘上
  • 反序列化:序列化的逆过程
  • pickle:python提供的序列化模块
  • pickle.dump:序列化
  • pickle.load:反序列化
import 

3.2、持久化-shelve

  • 持久化工具
  • 类似字典,用kv保存数据,存取方式跟字典类似
  • open,close
import 

3.3、shelve特性

  • 不支持多个应用并行写入
    • 为了解决这个问题,open的时候可使用flag=r
  • 写回问题
    • shelv不会等待持久化对象进行任何修改
    • 解决方法:强制写回,writeback=True
# 

练习

# 1、编写一个程序,接收用户输入的内容,并且保存为新的文件,如果用户输入:w,表示文件保存退出

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值