2017-10-21 32 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里工作。谢谢! –

相关问题