2017-10-21 29 views
1

我試圖將列表添加到Python三中的現有.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文件。但如果我用「a」替換「w」,我沒有得到目的輸出。我現在的問題是,如何將新列表的新組件添加到新行中的文件中?我的電流輸出是這樣的,如果我嘗試添加新的變量:

字符串1 integer1a integer1b字符串2 integer2a integer2a

我想,而不是以下顯示

字符串1 integer1a integer1b

字符串2整數2a整數2a

...

如何在每個列表插入後添加新行?

回答

1

您可以使用Python 3 print()功能做到這一點很容易,只需指定隔膜與sep文件和file參數,print()會照顧的細節你:

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

注意,我改名爲list參數iterable,因爲我們ing list陰影內置的list類,並且該函數應該適用於任何迭代。

from __future__ import print_function 
+0

關於'list'過載的好處。剛剛在其他答案中提出了類似的編輯:) – FabienP

1

這應該工作,你應該叫換行符在文件中寫你的名單後

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

我想它和它的工作通緝:

,如果你添加以下到你的文件的頂部這段代碼也將在Python 2裏工作。謝謝! –

相關問題