【python】实验1项目3 文件的读写,编码和解码
作者:互联网
文件的读写,编码和解码
小练习1:# 1.分别使用gbk和utf-8编码自己的名字,并将其打印出来。 # 2.复制上一步得到的结果,进行解码,打印出你的名字(两次)。3.使用gbk解码:b’\xb4\xf3\xca\xfd\xbe\xdd2018\xbc\xb6\xbf\xba\xb0\xef\xd7\xd3’
小练习2:通过文件读写命令,读取 photo1 里的数据。如下图,可以点击右键另存为photo1。然后,新建名为“photo2”的图片(在同一个文件夹),写入读到的数据,完成了图片的复制。
小练习3:完成文件转移之间的数据处理,让数据发生变化
有一个文件名字叫:‘吃鸡排行.txt’打开之后看到如下:
大数据第一战队_落地成盒 23 35 44 90 70
大数据第二战队_跑毒 60 77 68 88 90
大数据第三战队_神打野 97 99 89 91 99
大数据第四战队_ 鱼塘局 85 90 98 89
先把以上四行存为单独一个txt文件;1. 通过读取txt文件,打印出来每个战队的名字和总分,例如
大数据第一战队_落地成盒262
大数据第二战队_跑毒383
……
……
2把上面4行内容,存为列表并且写入一个名叫winner.txt文件中
3让战队的成绩从高到低排列,然后放到新文档“winner_new.txt”。
提示:对于3,可能要用到re包,字典、sorted()\zip()\map()\re.findall()\re.compile()
解题思路:3.1使用gbk和utf-8编码,以及解码
3.2打开图片,新建文件存图片
3.3.1&3.3.2打开‘吃鸡排行.txt’,读取文件,存为列表并且写入文件,进行排列,再存到新文件
1.3.1
# 1.分别使用gbk和utf-8编码自己的名字,并将其打印出来。
print('茹'.encode('utf-8'))
print('茹'.encode('gbk'))
# 2.复制上一步得到的结果,进行解码,打印出你的名字(两次)。
print(b'\xe5\xbc\xa0\xe4\xba\x9a\xe8\x8c\xb9'.decode('utf-8'))
print(b'\xd5\xc5\xd1\xc7\xc8\xe3'.decode('gbk'))
# 3.使用gbk解码。
print(b'\xb4\xf3\xca\xfd\xbe\xdd2018\xbc\xb6\xbf\xba\xb0\xef\xd7\xd3'.decode('gbk'))
print("Tans.plt")
1.3.2
with open('photo1.png','rb') as file: # 以“rb”模式打开图片
data = file.read()
with open('photo2.png','wb') as newfile: # 以“wb”模式写入
newfile.write(data)
print("plt")
1.3.3.1
file1 = open('吃鸡排行.txt','r',encoding='utf-8')
file_lines = file1.readlines()
file1.close()
final_scores = []
for i in file_lines:
data =i.split()
sum = 0
for score in data[1:]:
sum += int(score) # 然后依次加起来,但分数是字符串,所以要转换
result = data[0]+str(sum)+'\n' # 结果就是学生姓名和总分
print(result)
final_scores.append(result)
sum1 = open('winner.txt','w',encoding='utf-8')
sum1.writelines(final_scores)
sum1.close()
print("plt")
1.3.3.2
file1 = open('winner.txt','r',encoding='utf-8')
file_lines = file1.readlines()
file1.close()
dict_scores = {}
list_scores = []
final_scores = []
for i in file_lines:
name = i[:-4] #取名字
score = int(i[-4:-1]) # 取分数
dict_scores[score] = name
list_scores.append(score)
list_scores.sort(reverse=True)
for i in list_scores:
result = dict_scores[i] + str(i) + '\n'
final_scores.append(result)
print(result)
print(final_scores)
winner_new = open('winner_new.txt','w',encoding='utf-8')
winner_new.writelines(final_scores)
winner_new.close()
print("Tans.plt")
标签:utf,python,解码,winner,战队,scores,print,txt,读写 来源: https://blog.csdn.net/qq_49081198/article/details/118445605