文件操作
文件操作
定义:操作硬盘中的一块区域:读写操作
文件:硬盘中一块存储空间(虚拟的文件)
文件操作:根据文件名来操作硬盘的那块存储空间,操作方法:读read写write
''' 文件使用的三步骤 1.打开文件 变量名 = 文件空间 #文件路径、操作模式(读|写) ==>编码 f = open('a.txt','r',encoding='utf-8') 2.操作文件 读: read : 将所有文件读出来,如果设置长度,按照规定长度读取 readline:一次读一行 readlines:按行一次性全部读出来 模式: 基础写 文件不存在,会新建文件,再操作 文件存在,会清空,再操作 主模式:r 读| w 写| a 追加 从模式:b 按字节操作 | t 按字符操作 | + 可读可写 了解:x 异常写 |U 被遗弃了 3.关闭文件 f.close() #释放操作系统对文件的持有,变量f 还被应用程序持有 '''
文件的操作:
''' #读: f.read() #读取所有内容,光标移动到文件末尾,如果设置长度,按照规定长度读取 f.readline() #读取一行内容,光标移动到第二行首部,一次读一行 f.readlines() #读取每一行内容,存放于列表中,按行一次性全部读出来 #写: f.write('1111\n222\n') #针对文本模式的写,需要自己写换行符 f.write('1111\n222\n'.encode('utf-8')) #针对b模式的写,需要自己写换行符 f.writelines(['333\n','444\n']) #文件模式 f.writelines([bytes('333\n',encoding='utf-8'),'444\n'.encode('utf-8')]) #b模式 #了解 f.readable() #文件是否可读 f.writable() #文件是否可读 f.closed #文件是否关闭 f.encoding #如果文件打开模式为b,则没有该属性 f.flush() #立刻将文件内容从内存刷到硬盘 f.name '''
模式汇总:
***** ''' 主模式:r 读| w 写| a 追加 从模式:b 按字节操作 | t 按字符操作 | + 可读可写 了解:x 异常写 |U 被遗弃了 主模式: r: 读,无创建,不能对文件进行任何操作 w: 写,有创建,有清空 a: 追加,有创建,无清空 从模式:(从模式必须在主模式后面,不能单独出现) t: 文本操作(默认模式) r=>rt w=>wt a=>at b: 非文本文件必须采用二进制模式来处理 +: 可读可写 主、从: r:读,无创建,不能对文件进行任何操作 r+:可读可写,无创建,不能对文件进行任何操作 rb:二进制读,无创建,不能对文件进行任何操作 rb+:二进制读写,无创建,不能对文件进行任何操作 w:写,有创建,清空文件 w+:可读可写,有创建,清空文件 wb:二进制写,有创建,清空文件 wb+:二进制读写,有创建,清空文件 a:追加,有创建,无清空 a+:可读可写,有创建,不清空文件(追加) ab:二进制写,有创建,不清空文件(追加) ab+:二进制读写,有创建,不清空文件(追加) '''
游标操作:
''' 百度网盘 - 秒传 ''' ''' 1. 如何使用游标:游标的相关方法 2. 游标相关的读写操作 3. 根据游标在大文件中取出多个指定位置的部分字节内容 ''' ''' 方法: seek(偏移量,偏移位置) 必须在b模式 偏移量:移动的字节量,负数是结合模式1,2 往前偏移 (rb模式执行,d1.decode解码) 偏移位置:0 - 将游标移至数据的开头| 1 - 从当前游标位置开始偏移 |2 - 从文件末尾开始偏移 例: with open('job.TXT','rt',encoding='utf-8') as f: d1 = f.read() f.seek(0,0) print(d1) d2 = f.read() print(d2) pass '''