# 文本文件,可以用记事本打开的文件。一般是 unicode 字符集 两个字节表示一个字符 65536 2的16次方 。word文档打开的文档不是文本文件 # 二进制文件,像图片等,用'字节'进行存储。记事本打开乱码。 # a 追加 w 写 r 读 b二进制可与其它组合,默认是文本,只有使用了才二进制 +读、写可与其它组合 # 中文乱码的问题 # 2字节表示1个字符 定长编码 Unicode Utf-8是变长编辑码 1-4字节表示一个字符,英文1个字节,汉字3个字节 # linux 默认是utf-8 windows是GBK python 是unicode # ------------------------1111---------------------- # f = open(r'io1.txt', 'a', encoding='utf-8') # s = '我是周星弛,My name is Xingchi Zhou ' # f.write(s) # # 列表 writelines # list1 = ['列表1 ', '列表2 ', s] # f.writelines(list1) # f.close() # 读取 read([size]) int 读取几个字符 英、汉、符、空格、换行都算一个 # readline 读一行 readlines 按行读取生成列表 # ------------------------2222---------------------- # with open(r'io1.txt', 'r', encoding='utf8') as file: # text = file.read(4) # 一次读取后,将移动光标,再次读取从改位置读取 # print(text) # line = file.readline() # print(line) # ------------------------3333---------------------- # a = ['列表1 ', '列表2 ', 's '] # # b = enumerate(a) # # print(a) # print(list(b)) # [(0, '列表1 '), (1, '列表2 '), (2, 's ')] # # c = [temp+" #"+str(index) for index,temp in enumerate(a)] # 推导式 # cc = [temp.strip()+" #"+str(index) for index,temp in enumerate(a)] # strip()去两头空格换行 # # print(c, cc) # ['列表1 #0', '列表2 #1', 's #2'] ['列表1 #0', '列表2 #1', 's #2'] # ------------------------4444---------------------- with open(r'io1.txt', 'r', encoding='utf8') as file: lines = file.readlines() txt = [temp.strip()+" #"+str(index) for index,temp in enumerate(lines)] # 面二进制读图片 with open('5759.png', 'rb') as png: with open('copy.jpg','wb') as w: for line in png.readlines(): w.write(line) print('操作完成')