1:#r模式,在文件不存在时,不会创建新的文件
f = open(‘a.txt‘,‘r‘,encoding = ‘utf-8‘)
2:字符编码
什么是字符编码?
把人类的字符翻译成计算机能认识的数字
什么是字符编码表?
ASCII
GBK
UTF-8
Unicode
unicode-------->encode(‘utf-8‘)-------------->bytes
bytes------------>decode(‘utf-8‘)--------------->unicode
原则:
字符以什么格式编译的,就要以什么格式解码
ps:
python3中的字符分为两种
x=‘egon‘存成unicode
y=x.encode(‘utf-8‘)存成bytes
python2中的字符串也分成两种
x = u‘egon‘ 与python3中的字符串相同
y=‘alex‘与python3中的bytes类型相同
#r模式的读,在文件不存在时,不会创造新的文件f = open(‘a.txt‘,‘r‘,encoding = ‘utf-8‘)print(f.read())f.close() #b模式即直接从硬盘中读取bytesprint(f.read().decode(‘utf-8‘)) #w文本模式的写,文件存在则清空,不存在则创建f = open(‘a.txt‘,‘w‘,encoding = ‘utf-8‘)f = open(‘b.txt‘,‘w‘,encoding = ‘utf-8‘)print(f.writeable())#判断是否可写print(f.readable())#判断是否可读 #a文本模式的追加f = open(‘b.txt‘,‘a‘,encoding = ‘utf-8‘)print(f.writeable())#写文件涉及到文件光标的移动print(f.tell())print(f.readline())f.write(‘333\n‘)#r+,w+,a+,代表读的时候可以写,写的时候可以读 #rb模式即直接从硬盘中读取bytesf = open(‘a.txt‘,‘rb‘)print(f.read().decode(‘utf-8‘)) #wb模式f = open(‘a.txt‘,‘wb‘)f.write(‘你好啊‘.encode(‘utf-8‘)) ##b模式可以读取任何模式的文件with open(‘test.jpg‘,‘rb‘) as read_f,\ open(‘test1.jpg‘,‘wb‘) as write_f: for line in read_f: write_f.write(line) ##########################################################
f = open(‘a.txt‘,‘r‘,encoding = ‘utf-8‘)print(f.read())#f.read()可以指定多个,以文本方式读,以字符为单位 f = open(‘a.txt‘,‘rb‘)print(f.read(3).decode(‘utf-8‘))#以字节为单位,1个中文占3个字节,在文本模式下,以字符为单位读取,在b模式下,以字节为单位读取,其余的文件内光标移动都是以字节为单位的 f = open(‘a.txt‘,‘r‘,encoding = ‘utf-8‘)print(f.read())f.seek(0)#表示将光标的位置移动到开头print(f.read())f.seek(1)#表示从第一个字符开始读取print(f.tell())#tell表示以字节显示的 f.seek(6,0)#代表从文件开头取6个字节,根据读取的模式来,如果是可读模式,代表是读取的字符,其他的读取的是字节f.seek(6,1)#以当前光标所在的位置为参照物#seek有3种移动方式0,1,2其中1和2必须在b模式下进行,0在文本模式下也可以使用 f = open(‘a.txt‘,‘rb‘)f.seek(0,2)#此时光标一直指向最后f.seek(-1,2)#倒着切一个字节 cp文本
1 #####文件习题 2 import time 3 with open(‘test.txt‘,‘rb‘) as f: 4 f.seek(0) 5 while True: 6 line = f.readline() 7 if line: 8 print(line.decode(‘utf-8‘),end=‘‘) 9 else: 10 time.sleep(0.5)
时间: 2024-10-13 23:25:41