Python No.19_文件操作(增删改查)
内容摘要
# !/usr/bin/env python
# -*- coding:utf-8 -*-
# Author:Hugolinhj
"""
对文件的操作流程
1、打开文件、得到文件句柄并赋值给一个变量
2、通过句柄对文件进行操作
3、关
文章正文
# !/usr/bin/env python # -*- coding:utf-8 -*- # Author:Hugolinhj """ 对文件的操作流程 1、打开文件、得到文件句柄并赋值给一个变量 2、通过句柄对文件进行操作 3、关闭文件 """ """ data = open("yesterday",encoding="utf-8").read() #是指将内存复制到变量来修改,无意义,正常格式应该为以下 #windows默认编码格式是GBK,py是utf-8,要用encoding指定‘utf-8’打开。 f = open("yesterday","r",encoding="utf-8") data = f.read() data2 = f.read() data2 = f.read() print(data) print("data2 ===>",data2) #这里不打因data2不是没有打印,而是文件的所读光标已经指到文件底部,没能在指会文件首部。 w = open("yesterday2","w",encoding="utf-8")#文件句柄,就是该文件的内存对象。包含文件名、字符集、大小、描述。规范:加"r"默认不加为读模式。注!!!:’w‘直接创建空白文件。 w.write("wo ai BeiJingTianAna ") w.write("wo ai wulingmin") print(w) a = open("yesterday3","a",encoding="utf-8")# 加"a"是append,追加的意思,不能读。 a.write("wo ai BeiJingTianAna ") a.write("wo ai wulingmin ") print(a) a.close() #关闭文件 w.close() f.close() f = open("yesterday","r",encoding="utf-8") for i in range(5): print(f.readline()) #读一行,用for 语句读5行 f = open("yesterday","r",encoding="utf-8") for index,line in enumerate(f.readlines()):#找下标 index。 if index == 1: print("------------------") continue # 不操作,重新判断。 elif index == 11: print("==================") break #退出循环。 print(line.strip()) #打印文件中跳过第2行以及到第12行退出。 #注:readlines只能读小文件,不建议读大文件,因为是直接全部读取到内存中,占内存大。 #当想打印文件中的行数,建议采用以下方式: #标准: f = open("yesterday","r",encoding="utf-8") count = 0 for line in f: #这种是一行一行读取到内存,并一行一行从内存中删除。 使f变成迭代器。 if count == 9: print("++++++++++++") count += 1 continue else:print(line) count +=1 #打印文件’yesterday‘,其中第10行,不打印。 f.close() """ f = open("yesterday","r",encoding="utf-8") print(f.tell()) #打印当前文件所打印的指针。 print(f.read(5)) #打印当前文件的前5个字符。’Yeste‘ print(f.readline()) #打印当前文件的一行。’rday, all my troubles seemed so far away‘ print(f.tell()) #打印当前文件所打印的指针。 f.seek(0) #将指针指回0。 print(f.readline()) #打印当前文件的一行。#’Yesterday, all my troubles seemed so far away‘ print(f.encoding) #打印文件字符编码 print(f.fileno()) #打印操作系统内部接口的去读文件的编号。 print(f.name) #打印文件名 print(f.seekable()) #判断文件是否为可移动指针。 原因:文件不能移动指针,如:终端、驱动等,因为在linux中一切皆为文件,但驱动文件等是无法移动指针的。 print(f.writable()) #判断文件是否可读。 print(f.flush()) #因为存硬盘前,会先让内存存到缓存,缓存满了后再放入硬盘。flush是及时放入硬盘。 #例: import sys, time for i in range(50): sys.stdout.write("#") # sys.stdout 打印不换行。 sys.stdout.flush() # 及时打印。不放缓存条。 time.sleep(0.05) print(f.closed) #判断文件是否被关闭。 f = open("yesterday2","a",encoding="utf-8") print(f.truncate(10)) #截断文件‘yesterday2’10个字符。 f = open("yesterday","r+",encoding="utf-8")#"r+"可读,和追加。读写 print(f.readline()) print(f.readline()) print(f.readline()) print(f.tell())#打印光标 f.write("----------diao-----------") #追加是文件的最后。 print(f.readline()) # f = open("yesterday","w+",encoding="utf-8") #"r+"可读,和追加。写读,会先创建一个文件,没什么用 f.write("----------diao-----------") #追加是文件的最后。 f.seek(10) f.write("----------diao-----------") #追加是文件的最后。 f = open("yesterday","rb") #rb是指二进制文件。二进制不能传encoding传输。当网络传输时用二进制。 print(f.readline()) f = open("yesterday","wb") #rb是指二进制文件。二进制不能传encoding传输。当网络传输时用二进制。二进制写 f.write("hello binary ".encode())
代码注释
[!--zhushi--]