05-文件处理

Posted zhubincheng

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了05-文件处理相关的知识,希望对你有一定的参考价值。

引入

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、打开文件

1.1 open()传参

# windows路径分隔符问题
# 因为分隔符“”在python中代表转义符,为确保能正确读出路径
# 我们可采取以下两种策略

例子:
open(C:a.txt
bcd.txt)
# 解决方案一:推荐
open(rC:a.txt
bcd.txt)
# 解决方案二:
open(C:/a.txt/nb/c/d.txt)

 1.2 open()的返回值

 

f=open(raaa/a.txt,mode=rt,encoding="utf-8") # f的值是一种变量,占用的是应用程序的内存空间
print(f)                                        # <_io.TextIOWrapper name=‘aaa/a.txt‘ mode=‘rt‘ encoding=‘utf-8‘>
x=int(10)                                       # f的存储于x的存储类似
打开文件,由应用程序向操作系统发起系统调用open(...),操作系统打开该文件,对应一块硬盘空间,并返回一个文件对象赋值给一个变量f

技术图片

 

 

 2、操作文件

读/写文件,应用程序对文件的读写请求都是在向操作系统发送
# 系统调用,然后由操作系统控制硬盘把输入读入内存、或者写入硬盘
res=f.read()
print(type(res))
print(res)
3、关闭文件
因为若不关闭文件,操作系统会一直维持文件打开状态占用内存。
若一直不关闭会有以下问题:
1、操作系统可开文件数量有限,开太多无用文件会导致现有程序无法再打开更多文件。
2、虽然有机制,一定时间内检测文件长期不活跃,则关闭,但是仍占用内存资源。
f.close()                   # 回收操作系统资源
print(f)                    # <_io.TextIOWrapper name=‘aaa/a.txt‘ mode=‘rt‘ encoding=‘utf-8‘>
f.read()                    # ValueError: I/O operation on closed file.
                            # 变量f存在,但是不能再读了
del f                       # 回收应用程序资源

 

以上是关于05-文件处理的主要内容,如果未能解决你的问题,请参考以下文章

Xcode 4.6 的备份代码片段

Amazon Elastic Map Reduce:输入片段大小是不是重要

Oracle 数据库 - 使用UEStudio修改dmp文件版本号,解决imp命令恢复的数据库与dmp本地文件版本号不匹配导致的导入失败问题,“ORACLE error 12547”问题处理(代码片段

常用python日期日志获取内容循环的代码片段

处理屏幕旋转上的片段重复(带有示例代码)

在 Python 多处理进程中运行较慢的 OpenCV 代码片段