一、打开文件
data = open("yesterday",encoding="utf-8").read()# python默认的打字符编码是unicode,处理不了gbk,但是utf—8可以print(data)
ps:这边的yesterday文件是一首英文歌的歌词
在打开的时候,一定要转码,否则会乱码:encoding="utf-8"
二、读取前几行 会用到read( )和readline( )方法f = open("yesterday",encoding="utf-8") # 文件句柄,方法和1类似# data = f.read() # 光标在最后面# print(data)# f.readline() # 读取一行,只适合读小文件for i in range(5): print(f.readline()) # 循环之后读取四行三、读取前几行(优化版) 用到了迭代器,所以不会像二一样占用太大的内存,最后只会占用一行的内存
f = open("yesterday",encoding="utf-8")# 实现前九行的输入,并且在第九行输入分割线count = 0for line in f: if count == 9: print("--------分割线-------") count += 1 continue print(line) # 迭代器!效率最高的循环方式,比2效率高是因为读完一行就删一行 count +=1四、关于文件的方法python不是直接调用所有文件,而是调用操作系统的接口I/O,通过接口来调用文件
# 1.tell()方法:光标的位置f = open("yesterday",encoding="utf-8")print("1:",f.tell()) # 把指针的位置表示出来,0print("2:",f.readline())print("3:",f.tell()) # 读完一行字符之后光标的位置print("4:",f.readline(3))print("5:",f.tell()) # 读完三行字符之后光标的位置#2.seek()方法: 光标回到第几行f.seek(0)print("6:",f.tell()) # 光标重新回到了开始# 3.encoding # 打印文件的编码类型print("7:",f.encoding)# 4.fileno() 可用于底层操作系统的 I/O接口操作。print("8:",f.fileno())# 5.flush()print(f.flush()) # 实时刷新文件内容其实在学习python基础的时候,pycharm的联想功能非常重要!
小福利:
打开文件的模式有:
r,只读模式(默认)。
w,只写模式。【不可读;不存在则创建;存在则删除内容;】 a,追加模式。【可读; 不存在则创建;存在则只追加内容;】“+” 表示可以同时读写某个文件
r+,可读写文件。【可读;可写;可追加】 w+,写读 a+,同a"U"表示在读取时,可以将 \r \n \r\n自动转换成 \n (与 r 或 r+ 模式同使用)
rU r+U"b"表示处理二进制文件(如:FTP发送上传ISO镜像文件,linux可忽略,windows处理二进制文件时需标注)一般是在跨平台的时候需要处理二进制文件,比如Windows到linux;视频文件也需要处理二进制文件
rb —读,以二进制模式打开,此时不需要即encoding,
wb—写,此时需要加入encoding ab