#'w':只写,不能读(文件不存在会创建,存在会先删除原始内容) #'r':只读,不能写 #'a':追加,可写,不能读(文件不存在会创建,存在则追加内容) #'r+':可读,可写,可追加 #'w+':写读,先写后读(文件存在会先删除原始内容) #'a+':同'a' #'rU':读取时,将 转换成 ,功能同'r' #'r+U':读取时,将 转换成 ,功能同'r+' #'rb':读取二进制文件,功能同'r' #'wb':写二进制文件,功能同'w' #'ab':追加二进制,功能同'a' # 文件打开,返回文件对象,可以指定文件编码 encoding='utf-8' f = open('file.txt', 'r+')
# 是否可写 if f.writable(): # 保留指针之前的数据,并删除指针之后的数据 # f.seek(5) #print(f.truncate(), 'truncate') # 写数据,需要可写权限 f.write('1 2 3 4 5 6 7 ') # 文件描述符 print(f.fileno(), 'fileno') # 是否tty设备 print(f.isatty(), 'isatty') # 是否可读 if f.readable(): # 读取指针之后的数据,换行以 代替(需要带r模式),可以指定读取多少字符,为空读取所有 # print(f.read(),'read') # 读取指针之后的数据,按换行符分割成序列,可以指定读多少行,为空读取所有 #print(f.readlines(2), 'readlines') # 移动指针到指定位置(字节) f.seek(0) # 查看当前指针位置 # (read到哪,指针就到哪,下次再read,从指针处开始,如果指针都最尾部,则不能继续read,需要通过seek移动指针到可读位置) # 读取时 =1个字符,指针移动时=2个字节 r = f.read(1) print(f.tell(), r, 'tell') r = f.read(2) print(f.tell(), r, 'tell') # 刷新文件内部缓冲区(write是写到文件内部缓冲区,但没有刷新,只有flush或者close后,文件的实际内容才改变) f.flush() # 文件关闭 f.close() exit()