f = open('lyrics',encoding='utf-8')
first_line = f.readline()
print('first line:', first_line)
print('我是分割线'.center(50,'-'))
data = f.read()
print(data)
f.close()
open() # encoding不声明的话,默认使用操作系统的编码来解释文件内容
r 只读模式
w 只写模式
a 追加模式,只能追加
r+ 追加 + 读,可以定长修改
w+ 写读,原文家内容清空再写入
a+ 追加,读,文件最后读
U表示在读取时,可以将\r\n\r\n自动转换成\n
rU
r+U
b表示处理二进制文件(如FTP传输)
rb:以二进制模式打开文件,不能生命encoding
wb: 以二进制模式写入文件,必须写入bytes格式
ab:以二进制模式追加文件
# 打印光标(句柄)位置
f = open('lyric','r',encoding='utf-8')
print('cursor:',f.tell())
# 移动9个字节
f.seek(9)
print('cursor:',f.tell())
# 读6个字符
print(f.read(6))
f = open('lyric','w+',encoding='utf-8')
print('cursor:',f.tell())
f.write('fdsfdjs')
f.write('=========')
print('cursor:',f.tell())
# 将光标移到文件开头
f.seek(0)
print(f.read())
f.fileno() #文件描述如,打印操作系统打开的所有接口列表的号
f.isatty() #判断文件是否为终端文件,返回true,false
f.read() #读所有
f.readable #判断文件是否可读
f.readall() #读所有
f.seek() #只适用于文本文件
f.seekable() #
f.tell()
f = open('lyric','r+')
f.truncate(100) # 从头开始截断文件
f.write() # 写文件
f.writeable() # 判断文件可写
f.flush() # 刷新,在文件不关闭的情况下,将写入的东西写进文件中,用于打印实时日志,但会导致程序变慢