#'w':只写,不能读(文件不存在会创建,存在会先删除原始内容)
#'r':只读,不能写
#'a':追加,可写,不能读(文件不存在会创建,存在则追加内容)
#'r+':可读,可写,可追加
#'w+':写读,先写后读(文件存在会先删除原始内容)
#'a+':同'a'
#'rU':读取时,将\r \n \r\n 转换成\n,功能同'r'
#'r+U':读取时,将\r \n \r\n 转换成\n,功能同'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\n2\n3\n4\n5\n6\n7\n')
# 文件描述符
print(f.fileno(), 'fileno')
# 是否tty设备
print(f.isatty(), 'isatty')
# 是否可读
if f.readable():
# 读取指针之后的数据,换行以\n代替(需要带r模式),可以指定读取多少字符,为空读取所有
# print(f.read(),'read')
# 读取指针之后的数据,按换行符分割成序列,可以指定读多少行,为空读取所有
#print(f.readlines(2), 'readlines')
# 移动指针到指定位置(字节)
f.seek(0)
# 查看当前指针位置
# (read到哪,指针就到哪,下次再read,从指针处开始,如果指针都最尾部,则不能继续read,需要通过seek移动指针到可读位置)
# 读取时\n=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()
转载于:https://www.cnblogs.com/xh4528/p/6497733.html