は明らかにファイル名ではなく行のリストであるため、 ingおよびingでnew_list
すべてのものを必要とするわけではありません。また、1つで保存することもできません。open
read
write
しかし、あなたはそれをほとんど簡単に行うことができます。
new_list
の行に改行があるかどうかを指定しませんでした。まず、彼らがそうすると仮定しましょう。だから、あなたがしなければならないのは:
def save_file(filename, new_list):
with open(filename, 'w') as f:
f.write(''.join(new_list))
… また …:
def save_file(filename, new_list):
with open(filename, 'w') as f:
f.writelines(new_list)
しかし、あなたの先生はこのようなことを期待しているかもしれません:
def save_file(filename, new_list):
with open(filename, 'w') as f:
for line in new_list:
f.write(line)
改行が削除された場合はどうなるので、それらを追加し直す必要がありますか?次に、最初の2つの方法は少し複雑ですが、3番目の方法は非常に簡単です。
def save_file(filename, new_list):
with open(filename, 'w') as f:
f.write('\n'.join(new_list) + '\n')
def save_file(filename, new_list):
with open(filename, 'w') as f:
f.writelines(line + '\n' for line in new_list)
def save_file(filename, new_list):
with open(filename, 'w') as f:
for line in new_list:
f.write(line + '\n')
その間、あなたは仕事をしていませんload_file
。行のリストを返すことになっていますが、何も返しません(つまり、を返しますNone
)。print
何かを印刷すると、ユーザーが見ることができるようになり、後で使用するために何も保存されません。
あなたはこのようなものが欲しいです:
def load_file(filename):
lines = []
with open(filename, 'Ur') as f:
for line in f:
lines.append(line)
return lines
ただし、これを作成するためのはるかに簡単な方法があります。あなたができるならfor line in f:
、それf
はある種の反復可能です。これはリストとほぼ同じです。実際のリストにしたい場合は、簡単です。
def load_file(filename):
with open(filename, 'Ur') as f:
return list(f)