# 文本文件,可以用记事本打开的文件。一般是 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('操作完成')