0
わかりましたので、基本的に私はこのようなデータを含むテキストファイルにアクセスしようとしている:行のデータを繰り返さずにテキストファイルに書き込む方法は?
John 01
Steve 02
Adam 15
を、私は、それをアクセスする各ラインから整数を分割し、変数「日中それぞれ1から1を引いています"次に、各行から1を減算した後、if文を実行して、行に0が含まれているかどうかを確認します。行に0が含まれている場合は、行全体(番号と名前)を削除してから、次のコードはコンソールで完璧に動作し、名前は完全に印刷され、削除されるだけで、各行が自分のものではなく最後の日の値を印刷しているという事実に問題があります。たとえば、次のように
Steve 14
Adam 14
スティーブは01にする必要がありますが、彼はアダムの14私のコードを取ったことは以下に添付されています
global days
global names
with open('tracker.txt', 'r') as f:
for line in f:
days = line.strip()[-2:]
names = line.strip()[:-3]
days = int(days) - 1
print(names +" "+str(days))
if days == 0:
f = open("tracker.txt","r")
lines = f.readlines()
f.close()
f = open("tracker.txt","w")
for line in lines:
if line!=str(names)+ " 01" +"\n":
f.write(line[:-3]+ "" + str(days) + "\n")
f.close()
f.close()
ネストされたループで同じ変数 '' f''と '' line''を使用していますが、これはエラーが発生しやすくなります。あなたはそれを繰り返している間に '' f''を変えています! –
元の回答はコメントとして投稿されました:私はあなたのコードではあまり掘り下げませんでしたが、その日は2桁を超えて書かれていると仮定しています。 分割を使用することを検討してください。 インスピレーションのためのテストされていない例。 https://paste.ofcode.org/hdFrstgGtWMUCUpKXXCnaP – AsTeR
期待される出力は? –