pythonファイルの読み書き練習


1.ファイル読み書きコマンドでphoto 1のデータを読み込んでください(コード領域の先頭を参照).そして、「photo 2」という画像(同じフォルダ)を新規作成し、読み込んだデータを書き込みます.これにより、ファイルの読み書きコードを通じて、マウスの右ボタンではなく画像のコピーを完了します.
with open('photo2.png','rb') as file:  #  “rb”      
    data = file.read()
    with open('photo3.png','wb') as newfile:  #  “wb”    
        newfile.write(data)

2.今scoresという人がいます.txtのファイルには、ハーミン、ハリー、ロン、マルフォードの4人の魔法の宿題の成績がいくつか入っています.しかし、一部の魔法の宿題は難しいので、教授は学生たちに提出しなければならないと強制しないので、みんなの宿題の回数は一致していません.ロン23 35 44ハリー60 77,688,8990ヘミン97,999,8991,9990マルフォード100,85,990この4人の学生の魔法の宿題の総得点を統計してから、txtファイルに書き込んでほしい.注意、この練習の全行程はPythonしか使えません.
file1 = open('scores.txt','r',encoding='utf-8') 
file_lines = file1.readlines() 
file1.close()

final_scores = []

for i in file_lines:
    data =i.split()
    sum = 0  #        0
    for score in data[1:]:  #       1         
        sum = sum + int(score)  #        ,       ,         
    result = data[0]+str(sum)+'
' # print(result) final_scores.append(result) print(final_scores) sum1 = open('winner.txt','w',encoding='utf-8') sum1.writelines(final_scores) sum1.close()

3.今、授業で得た「winner」ドキュメントを再処理する予定です.学習者の成績を上位から下位に並べて、新しいドキュメント「winner_new.txt」に配置します.
#         ,      (                 ,        )。

file1 = open('winner.txt','r',encoding='utf-8') 
file_lines = file1.readlines() 
file1.close()

dict_scores = {}
list_scores = []
final_scores = []

# print(file_lines) 
# print(len('
')) # :[' 102
', ' 383
', ' 570
', ' 275
'] # , '
' 1。 , “ 0 - 5 ”, “ 4 - ”。 # “ ”, :name-[:-4],score-[-4:-1] for i in file_lines: # i 。 print(i) name = i[:-4] # ( : , 。) score = int(i[-4:-1]) # print(name) print(score) dict_scores[score] = name # ( : ) list_scores.append(score) # print(list_scores) list_scores.sort(reverse=True) # reverse, , , 。 # print(list_scores) for i in list_scores: result = dict_scores[i] + str(i) + '
' #print(dict_scores[i]) # print(result) final_scores.append(result) print(final_scores) # winner_new = open('winner_new.txt','w',encoding='utf-8') winner_new.writelines(final_scores) winner_new.close()

記録:(1)自分で作るときは,並べ替えられたリストに基づいて辞書の値を順次出力する方法を考える.最後にやっと思いついたのは、リストを巡って(このときリストの成績はすでに高低順に並べられているので)、辞書に対応するキー(ここでは一人一人の名前)をdict_出力することです.scores[i]では、名前と点数をつなぎ合わせて、新しいリストfinal_を追加します.scores=[]でいいです.(2)2つ目の質問は、ファイルを書き込むときにwinner_を使っていることです.new.write(final_scores)では、writeは文字列のみを書き込むことができ、リストを書き込むことができないため、エラーが発生します.だからここではwritelinesを使えばいいです.
4.練習は国語の先生にいくつかの古詩をtxtドキュメントに存在させ、1行1行を要求する.最近、彼はいくつかの古詩を引いて、自分で空を設定して学生に黙記させる計画だ.コードで先生にこの仕事を手伝ってください(1つのドキュメントを処理し、ループを加えるだけで無数のドキュメントを処理することができます).錦瑟[唐]李商隠
錦瑟無端五十弦、一弦一柱思華年.荘生暁夢は蝶に夢中になり、望帝春心はツツジを託した.滄海の月明珠には涙があり、青田の日は暖かい玉が煙を生んだ.この情は追憶になるだろうが、当時はすでに困惑していた.
list_test = ['       。
',' 。
'] # 。 with open ('poem2.txt','r') as f: lines = f.readlines() print(lines) with open('poem2.txt','w') as new: for line in lines: if line in list_test: # , 。 new.write('____________。
') else: new.write(line)