py08_文件处理

1、文件的初步认识python

1.文件是什么东西?app

1.1操做系统为用户或者应用程序提供了一个可读写硬盘的虚拟单位,该虚拟单位就是指文件。编码

1.2文件的核心操做:读和写;即当咱们须要对文件进行读写操做时,就是对操做系统发起请求,而后由操做系统将将用户或者应用程序对文件的读写操做转换成具体的硬盘指令(好比控制硬盘的盘片转动,控制机械手臂来读写数据)spa

2.文件是为何产生的?操作系统

对于内存来讲,没法永久保存数据,只要咱们想要永久的存储数据,都须要将数据保存到硬盘中,而操做文件就能够实现对硬件的操做。指针

3.文件该怎么使用?code

3.1 将内存中的临时数据永久存储到硬盘中去视频

name="one piece"
#定义变量就是将要储存的数据从内存中存储到硬盘中去

3.2 那么如何把硬盘当中的数据读到内存中去呢?blog

初步涉及到对文件的基本操做:内存

# r:rawstring:原生字符
f=open(r"文件路径.txt"mode="r")  #向操做系统发起请求,要求操做系统打开文件,占用 
                                                  #操做系统的资源
data=f.read()   #向操做系统申请读文件的请求,会被操做系统转成具体的硬盘操做,
                      #将内容由硬盘读入内存
print(data)
f.close()    #向操做系统发起请求,要求操做系统关闭文件,回收系统资源

3.3 文件操做小结:3.3.1  打开须要操做的文件

                               3.3.2  读写文件

                               3.3.3  关闭该文件        

 ⭐ ⭐ ⭐ 知识补充:

绝对路径:从盘符(C:\\E:\\D:\\)开始写一个完整的路径

相对路径:相对于当前执行文件所在的文件夹开始找

4、文件的具体操做⭐ ⭐ ⭐⭐ ⭐ 

先知:控制读写文件内容的结果有两种:t模式(text)和b模式(bytes)

注意:A     t与b这两种模式均不能单独使用,都须要与r/w/a配合使用

          B      默认状况下内容的格式是t

          C      只有文本文件才能使用t模式,也只有文本文件才有字符编码的概念

1. 操做文件的基础模式(r/w/a)

1.1 read,只读模式

注意事项:只能读,不能写

                 在文件不存在时会报错,文件存在的时候会将文件指针移动到开头

1.2 write,只写模式

注意事项:只能写,不能读

                  在文件不存在时会建立新的空文件,在文件存在时会将文件内容清空并写上须要内容(也可理解成新写的文本内容将旧的文本覆盖了)

1.3 append,只追加写模式

注意事项:只能写,不能读

                  在文件不存在时会建立新的空文件,在文件存在时会将指针移动到文件末尾(写文本内容时也是从文件末尾开始写入)

2. 二进制模式

注意:二进制必定不能指定字符编码,只有t模式才与字符编码有关

          b是二进制模式,这是一种通用的文件读取模式,正常状况下全部的文件在硬盘中都是以二进制的形式存放的

3. 循环读

3.1 文本文件--字符串-读

f=open("文件路径","rt",encoding="utf-8")
for line in f :
    print(line)
f.close()

 

3.2 文本文件--二进制-读

f=open("文件路径","rb")
for line in f:
    print(line)
f.close()

 

3.3 视频文件--二进制-读

f=open("文件路径","rb")
for line in f:
    print(line)
f.close()

 

3.4文本文件--二进制-写

f=open("文件路径","wb")
f.write("写入内容".encode("utf-8"))
f.close()

 

3.2 文本文件--二进制-追加写

f=open("文件路径","ab")
f.write("追加写内容",encode("utf-8"))
f.close()

 

4 python提供的简便作法

#上下文管理
with open("文件1路径","rb")as f1,open("文件2路径","wt",encoding="utf-8") as f2:
    src_data=f.read()  #文件操做
    res=src_data.decode("utf-8")     #print(type(res))
    f.write(res)

 

上述作法可简便成

with open("文件1路径","rb")as f1,\
          open("文件2路径","wb")as f2:
    #文件的操做
    f.close()
相关文章
相关标签/搜索