当前位置: 首页 > news >正文

day11:01文件处理

一、文件与文件模式介绍

1、什么是文件

文件是操作系统提供给用户/应用程序操作硬盘的一种虚拟的概念/接口
用户/应用程序(open())
操作系统(文件)
计算机硬件(硬盘)

2、为何要用文件

①用户/应用程序可以通过文件将数据永久保存的硬盘中,即操作文件就是操作硬盘;②用户/应用程序直接操作的是文件,对文件进行的所有的操作,都是在向操作系统发送系统调用,然后再由操作将其转换成具体的硬盘操作;

3、如何用文件:open()

控制文件读写内容的模式:t和b
强调:t和b不能单独使用,必须跟r/w/a连用

t文本(默认的模式)

1、读写都以str(unicode)为单位的
2、文本文件
3、必须指定encoding=‘utf-8’

b二进制/bytes

控制文件读写操作的模式
r只读模式
w只写模式
a只追加写模式
+:r+、w+、a+

二、文件操作基本

1、打开文件

windows路径分隔符问题
open(‘C:\a.txt\nb\c\d.txt’)

解决方案一:推荐
open(r’C:\a.txt\nb\c\d.txt’)

解决方案二:
open(‘C:/a.txt/nb/c/d.txt’)

注: f的值是一种变量,占用的是应用程序的内存空间

f=open(r'aaa/a.txt',mode='rt') 
print(f)
x=int(10)

2、操作文件

读/写文件,应用程序对文件的读写请求都是在向操作系统发送系统调用,然后由操作系统控制硬盘把输入读入内存、或者写入硬盘

res=f.read()
print(type(res))
print(res)

3、关闭文件

f.close() # 回收操作系统资源,这是操作系统的东西,关闭了刚打开的文件,但python关闭不到,所以不可省略
print(f)
f.read() # 变量f存在,但是不能再读了,因为操作系统已经将文件f.close()关闭了#del f     # 回收应用程序资源,在python3中不需要这一步,因为Python的GC模块主要运用了“引用计数”(reference counting)来跟踪和回收垃圾。在引用计数的基础上,还可以通过“标记-清除”(mark and sweep)解决容器对象可能产生的循环引用的问题,并且通过“分代回收”(generation collection)以空间换取时间的方式来进一步提高垃圾回收的效率。

4、with上下文管理

文件对象又称为文件句柄
句柄,理解为手柄,手柄控制游戏任务,所以类比,句柄操控操作系统

with open('a.txt',mode='rt') as f1: # f1=open('a.txt',mode='rt')res=f1.read()print(res)with open('a.txt',mode='rt') as f1,\       # 这里注意:一行代码太长,使用‘\’进行分割换行,回车open('b.txt',mode='rt') as f2:res1=f1.read()res2=f2.read()print(res1)print(res2)# f1.close()   with 语法已经将f1/f2关闭,这两步可以省略# f2.close()
http://www.lryc.cn/news/397742.html

相关文章:

  • 一场夏测杀出个“双冠王”,极越01成为纯电SUV标杆
  • 外科休克病人的护理
  • C-study(五).2
  • 使用Ultralytics YOLO进行模型验证
  • MICCAI 2023 List of Papers
  • 压缩文件的解析方式
  • rocket mq保证消息幂等性
  • Elasticsearch基本操作
  • 设计模式探索:责任链模式
  • OceanBase 配置项系统变量实现及应用详解(3):新增配置项的方法
  • PCI PTS 硬件安全模块(HSM)模块化安全要求 v5.0
  • javaweb中的请求与响应--基于postman工具的应用(附带postman的详细安装步骤)
  • StarRocks下载使用说明和基础操作
  • 桥接模式案例
  • Spring源码二十二:Bean实例化流程五
  • Unity3D中UI层级改变详解
  • centos安装数据库同步工具sqoop并导入数据,导出数据,添加定时任务
  • asp .net core 避免请求body数据量过大
  • 搭建discuz论坛(lvs+nginx+http+mysql+nfs)8台服务器
  • 就业平台小程序的设计
  • hid-ft260驱动学习笔记 5 - ft260_i2c_probe
  • Android上如何使用perfetto分析systrace
  • React Hooks学习笔记
  • BGP第二日
  • rabbitmq集群创建admin用户之后,提示can access virtual hosts是No access状态
  • ARM功耗管理之多核处理器启动
  • java使用easypoi模版导出word详细步骤
  • Android 内部保持数据的方式
  • uniapp 表格,动态表头表格封装渲染
  • beyond Compare连接 openWrt 和 VsCode