文件操作part1

什么是文件?

  文件是操作系统提供给用户/应用程序的一种虚拟单位,该虚拟单位直接映射的是硬盘空间

为何要处理文件

  用户/应用程序直接操作文件(读写)就是被操作系统转换成具体的硬盘操作,从而实现用户/应用程序的将内存中的数据永久保存到硬盘

怎么使用文件操作

# 文件处理的三个步骤
# f=open(r'c.txt',mode='r',encoding='utf-8') # 文件对象(应用程序的内存资源)------》操作系统打开的文件(操作系统的内存资源)
# # print(f)
# data=f.read()
# f.close() # 向操作系统发送信号,让操作系统关闭打开的文件,从而回收操作系统的资源

文件操作的基本格式:

参数说明:

  第一参数是文件的路径(可以使用绝对路径和相对路径两种)r加在字符串前面的意思是字符串内转义符没有使用。

  第二参数是读取的方式。主要有r,w,a,rb,wb,ab等

  第三参数是设定解码的字符编码。用于r,w,a 模式下。

  f是文件操作的对象,存在应用程序的内存中,同时操作系统也在内存中开辟对文件操作的内存空间。

  f.close()就是为了帮助操作系统将对文件操作的内存空间释放掉。

上下文管理

  上下文管理的作用,就是将内存的释放交由with关键字自动释放。减少每次f.close()的繁琐

  示例:

# with open(r'c.txt',mode='r',encoding='utf-8') as f,open(r'b.txt',mode='r',encoding='utf-8') as f1:
    # 读写文件的操作
    # pass

如何使用文件操作:本章中只演示r rb的功能

r (rt)只读文本模式模式,需要指定相应文件的解码字符编码,只能读文本格式文件,直接读取Unicode

只读模式,在文件不存在时则报错,如果文件存在文件指针跳到文件的开头
with open(r'c.txt',mode='rt',encoding='utf-8') as f:
    print(f.read())#读取文本所有内容
    print(f.readable())#是否可读
    print(f.writable())#False
    f.write('hello') #报错,只能读不能写

rb 只读二进制模式,不需制定相应的字符编码,所有格式的文件都可以读出来,将硬盘中保存的二进制加载如内存中

with open(r'c.txt',mode='rb') as f:
    data=f.read()
    # print(data,type(data))#Bytes格式
    res=data.decode('utf-8')#解码成为unicode二进制
    print(res)

read()   readline()  readlines()的区别

read将整个文件内容全读出来,readline()是根据 逐行读取。readlines()是依据 划分为列表

with open(r'c.txt',mode='rt',encoding='utf-8') as f:
    # line=f.readline()
    # print(line,end='')
    # line1=f.readline()
    # print(line1,end='')
    # line2 = f.readline()
    # print(line2,end='')

    lines=f.readlines()
    print(lines)
with open(r'c.txt',mode='rt',encoding='utf-8') as f:
    line=f.readline()
    print(line,end='')

for循环逐条读取内容

with open(r'c.txt',mode='rt',encoding='utf-8') as f:
    for line in f:
        print(line,end='')
原文地址:https://www.cnblogs.com/msj513/p/9676195.html