1. ホーム
  2. python

[解決済み] リストをファイルに保存して、リスト型として読み込むには?

2022-03-08 12:06:58

質問

例えば、リスト score=[1,2,3,4,5] があり、プログラム実行中にそれが変更されたとします。これをファイルに保存して、次にプログラムを実行したときに、変更されたリストをリスト型としてアクセスできるようにするにはどうしたらよいでしょうか?

試してみました。

score=[1,2,3,4,5]

with open("file.txt", 'w') as f:
    for s in score:
        f.write(str(s) + '\n')

with open("file.txt", 'r') as f:
    score = [line.rstrip('\n') for line in f]


print(score)

しかし、これではリストの要素が整数ではなく文字列になってしまいます。

解決方法は?

テスト中にテキストファイルを開いて簡単に内容を変更できるようにしたかったので、pickleは使いたくないと判断しました。そこで、このようにしました。

score = [1,2,3,4,5]

with open("file.txt", "w") as f:
    for s in score:
        f.write(str(s) +"\n")

score = []
with open("file.txt", "r") as f:
  for line in f:
    score.append(int(line.strip()))

つまり、ファイル内の項目は文字列としてファイルに保存されているにもかかわらず、整数として読み込まれるのです。