字符编码及文件操作
写代码和做人一样,从前往后看的时候,往往会看不明白,但是,如果站在结果,去看过往,一切都是如此的清澈透明,完全可以理解和接受.人生可以有遗憾,但是,代码不能有BUG.哈哈....扯远了,继续讲代码.字符编码与文件操作息息相关.因为在文件操作中,要判断光标(指针)的位置,就需要用不同的模式,而每个模式下,因为使用的方法不同,读内容的形式也会不同.
在ascii码中,1英文字母占1个字节;
在gbk中,1个英文字母占2个字节,1个普通汉字点2个字节,生僻汉字可能会占多个字节.
在utf-8中,1个英文字母占1个字节,1个普通汉字点3个字节,生僻汉字可能会占多个字节.
在文件操作中:
seek(参数1,参数2)方法用来移动光标,参数1(填写光标要移动几个字节),参数2:填写模式(有3个模式(
))然后,配合realine()就可以写出一个简单的实时监测文件内容是否被修改,的程序,若文件被修改,刚实时打印修改内容.代码如下:
# 源文件 import time #导入time模块 tm = time.strftime("%Y-%m-%d %X") #获取当前时间 with open('old1.txt','a',encoding='utf-8') as write_f: #打开文件 ctt = '%sthis a test.\n'%(tm) #设置写入文件的内容 write_f.write(ctt) #将内容写入文件
with open('old1.txt','rb') as read_f: #以二进制只读方式,打开文件 read_f.seek(0,2) #将光标称动到文件末尾 while True: #循环读取文件内容 line = read_f.readline() #读取文件末尾内容 if line: #判断是否有新内容 print('新增内容%s'%(line.decode('utf-8'))) #打印新内容