文件处理流程
打开文件---〉获取文件对象---〉关闭文件
基本操作
1、打开文件
f = open('<路径+文件名>','<模式>'...) # 默认为r模式只读(read)
first_line = f.read_line() # 读取第一行
print(first_line)
f.close() # 关闭文件
打开文件的模式有:
r ,只读模式【默认模式,文件必须存在,不存在则抛出异常】 w,只写模式【不可读;不存在则创建;存在则清空内容】 x, 只写模式【不可读;不存在则创建,存在则报错】 a, 追加模式【可读; 不存在则创建;存在则只再末尾追加内容】
"+" 表示可以同时读写某个文件:
r+, 读写【可读,可写】 w+,写读【可写,可读】 x+ ,写读【可读,可写】 a+, 写读【可读,可写】
"b"表示以字节的方式操作,需要decode解码,encode编码,二进制可编辑图片,音频等等
rb 或 r+b wb 或 w+b xb 或 w+b ab 或 a+b
以b方式打开时,读取到的内容是字节类型,写入时也需要提供字节类型,不能指定编码
读取实例:
f = open('/ljy/gc.txt', encoding='utf-8') # 默认为r模式只读(read) first_line = f.readline() # 读取第一行 print(first_line) f.close() # 关闭文件 #按行全部读取为list f = open('gc.txt', encoding='utf-8') a = f.readlines() # 按行全部读取为list print(a) f.close() # 关闭 f = open('gc.txt', encoding='utf-8') a = f.read() # 默认全部读取仅限于小文件,程序先把文件读取到内存里,这样的话大文件会很慢 print(a) f.close() # 关闭 f = open("fileone","r+",encoding="utf-8") #打开文件并且是读写权限,打开文件往里写 f = open("fileone","w+",encoding="utf-8") #打开文件并且是写读权限,先创建一个空文件再往里面写 f = open("fileone","rb") #文件句柄,以二进制打开 f = open("fileone","wb") #文件句柄,以二进制打开 f.write("ceshi".encode()) #m默认以服务器字符集写入 f.readline() f.readline() print(f.tell())
写入实例:
#创建一个新文件并写入,如果原来有这个文件会被清空 f = open("gc.txt","w",encoding="utf-8") #w创建一个新的文件,并允许写入 f.write("第一句话 ") #写入内容 f.write("第二句话 ") #写入内容 #在文件中追加内容 f = open("gc.txt","a",encoding="utf-8") #a表示append是追加的意思 f.write("第三句话 ") #写入内容 #指针问题 f = open("gc.txt","r",encoding="utf-8") print(f.tell()) #打印当前句柄指针 print(f.readline()) #逐行读取 print(f.readline()) print(f.readline()) f.seek(0) #返回指针0位置 print(f.tell())