python文件操作基础
本周内容:
- 
1. day02 文件处理
- 
1.1 文件处理的基本步骤
 - 
1.2 with语法
 - 
1.3 文件打开模式
- 
1.3.1 控制文件读写操作的模式
 - 
1.3.2 控制文件读写内容的模式
 - 
1.3.3 文件操作的方法
 - 
1.3.4 控制文件指针移动
 - 
1.3.5 文件修改的两种方式
 
 - 
 
 - 
 - 
2. day03 函数及模块
 
今日内容详细
1. day02 文件处理
- 
1.1 文件处理的基本步骤
''' 概念: ''' '''什么是文件''' 文件是操作系统提供给用户或者说应用程序操作硬盘的一种功能 '''为何要用文件''' 读写文件就是在读写硬盘:我们对文件的读写操作都会被操作系统转换成硬盘的读写操作 个人理解: 为了便于利用操作系统实现我们对硬盘的读写 应用程序------------->>>> 操作系统------------->>>>文件 硬件------------->>>> 硬盘 '''如何使用文件''' 1. 打开文件 open(r'文件路径', mode='读/写模式',encoding='文件编码') open()的作用: 1). 打开文件,映射硬盘空间 2). 返回文件句柄/文件对象或可以说是返回一个值(占用内存空间) 2. 读/写文件 .read() .write() 调用系统资源,进行文件读写 3. 关闭文件 .close() close()释放操作系统中被调用的空间资源 例: f = open(r'a.txt','rt', encoding='utf-8') print(f) # 这里的f就是一个盛装读取到文件内容的对象容器 res = f.read() # 该对象可以调用文件的一些内置方法 print(res) f.close() # 结束对操作系统资源、空间的调用 PS: 1). 文件对象:是对这个文件的一些状态、属性的封装,例如读取到的文件位置等。 文件句柄(Windows中概念),文件描述符(linux中概念): 用来定位打开的文件在内存中的位置 2). with open() as 变量名/对象名: 程序结束后,自动释放操作系统资源空间 - 
1.2 with语法
with open() as 变量名/对象名: 程序结束后,自动释放操作系统资源空间 不用再输入.close()关闭文件 - 
1.3 文件打开模式
- 
1.3.1 控制文件读写操作的模式
r(默认) 只读 只读模式,如果文件不存在则报错,文件存在则文件指针处于文件开头 w 只写 只写模式,如果文件不存在则创建空文档,文件存在则清空,文件指针处于文件开头 文件被打开后,不关的情况下连续运行程序,新写的内容永远跟在后面。 a 追加 只追加写模式 与w模式相同的是:如果文件不存在则创建空文档,文件存在不会清空,打开的文件不关的情况下,可以连续的'write'写入,文件指针处于文件末尾; 不同的是:文件关闭然后重新打开的情况下,依旧写在后面 - 
1.3.2 控制文件读写内容的模式
t (默认) 读写都是以字符串为单位的,只适用于文本文件,必须指定encoding参数 b 读写都是以bytes为单位,适用于所有文件,一定不能指定encoding参数 例一:文件的拷贝功能 with open('1.mp4', 'rb') as f1, open(r'd:\11.mp4', 'wb') as f2: res = f1.read() f2.write(res) 例二: with open('a.txt', 'rt', encoding='utf8') as f: f.read() for line in f: print(line, end='') # 用for 循环实现非连续性读写输出,适用于文件内容过大 with open('1.mp4', 'rb') as f: for line in f: print(line) 组合实现文件拷贝: with open ('1.mp4','rb') as f1, open(r'11.mp4','wb') as f2: for line in f1: f2.write(line) 扩展内容: 可读可写 读写模式(t默认省略,为读写文本文件): r+ w+ a+ 读写模式(b,读写字节文件): r+b w+b a+b - 
1.3.3 文件操作的内置方法
1).读的内置方法: .read() .readline() .readlines() .read() 每次读取整个文件,它通常将读取到底文件内容放到一个字符串变量中, 也就是说 .read() 生成文件内容是一个字符串类型。 特点是:读取整个文件,将文件内容放到一个字符串变量中。 劣势是:如果文件非常大,尤其是大于内存时,无法使用read()方法。 .readline()每只读取文件的一行,通常也是读取到的一行内容放到一个字符串变量中 ,返回str类型。 特点:readline()方法每次读取一行;返回的是一个字符串对象,保持当前行的内存 缺点:比readlines慢得多 .readlines()每次按行读取整个文件内容,将读取到的内容放到一个列表中, 返回list类型。 特点:一次性读取整个文件;自动将文件内容分析成一个行的列表。 2).写的内置方法: file.write(str) file.writelines(sequence) file.write(str)需要传入一个字符串做为参数,否则会报错。 返回的是写入的字符长度。 file.writelines(sequence)可以有两种:字符串和字符序列,传入字符序列时, 如果需要换行,则每个序列元素末尾需要有“\n”换行符才能达到所要输出的格式要求。 注意 :writelines必须传入的是字符序列,不能是数字序列 writelines( "字符串" ) writelines( "字符序列" ) - 
1.3.4 控制文件指针移动
''' 大前提: 只有t模式下的 f.read(n)中的n代表的是字符个数, 除此之外,关于指针的移动,单位都是字节bytes PS: a、a+ 读写完文件后,指针会停留在末尾 r、r+、w、w+ 等的操作完成后,指针都会停留子文件首部 ''' 指针控制方法: file.read(n) 代表读取的字符个数,如截取的是中文,而又不足'n'的要求,则会出现乱码 以下则显示的是字节个数 file.truncate() # 截断模式 file.seek() file.seek(字节个数, 0) 指针指向文件头 file.seek(字节个数, 1) 指针指向当前 file.seek(字节个数, 2) 指针指向末尾 模式控制: 0: 默认的模式,该模式代表指针移动的字节数是以文件开头为参照的 1: 该模式代表指针移动的字节数是以当前所在的位置为参照的1 2: 该模式代表指针移动的字节数是以文件末尾的位置为参照的 强调:其中0模式可以在t或者b模式使用,而1跟2模式只能在b模式下用 f.tell()查看文件指针当前距离文件开头的位置 - 
1.3.5 文件修改的两种方式
未讲到 
 - 
 
    最是秋雨悲凉,
多少落叶黄。
三十余载春秋梦,回首成过往。
静思量,向前方,莫待白头空沧桑。
                    
                
                
            
        
浙公网安备 33010602011771号