2017-10-21 23 views
1

私はPython 3の既存の.txtファイルにリストを追加しようとしています。現在、私は次のコードを持っている:pythonの.txtファイルの新しい行に新しいリストを追加します。

def function(list, new_add): 
    with open("file.txt", new_add) as file: 
     for item in list: 
      file.write("{}\t".format(item)) 


add_grade(list, "w") 

を私はリストを作成しました:

list = [string1, integer1a, integer1b] 

これは、新しいtxtファイルを作成する正常に動作します。しかし、私が "w"を "a"に置き換えると、目的の出力は得られません。私の質問は今、新しい行のファイルにリストの新しいコンポーネントを追加するにはどうすればいいですか?私は新しい変数を追加しようとすると、私の現在の出力は次のようになります。

がstring1をinteger1a integer1b string2のinteger2a integer2a

私は表示次代わりたいと思います:

文字列1のinteger1a string2の

integer1b整数2a整数2a

...

各リストを挿入した後に、どのように新しい行を追加できますか?

答えて

1

をあなたのリストを書いた後、改行を呼び出すだけsepとセパレータとファイルを指定し、すべきであるがfileパラメータ、およびprint()はあなたのための詳細の世話をします。私たちのでiterablelistパラメータの名前を変更し

def function(iterable, filename, new_add): 
    with open(filename, new_add) as file: 
     print(*iterable, sep='\t', file=file) 

注意listは組み込みのlistクラスをシャドウし、この関数は任意のiterableで動作するはずです。あなたはファイルの先頭に以下を追加した場合

また、このコードはPythonの2で動作します:

from __future__ import print_function 
+0

'list'オーバーロードに関する良い点。ちょうど他の答えで同様の編集を提案:) – FabienP

1

これは動作するはずです、あなたは、あなたは、Python 3 print()機能を非常に簡単にこれを行うことができ、ファイルに

def add_grade(list, new_add): 
    with open("file.txt", new_add) as file: 
     for item in list: 
      file.write("{}\t".format(item)) 
     file.write("\n") 


add_grade(list, "w") 
+0

私はそれを試したかったとして、それが働きました。ありがとうございました! –

関連する問題