在python中的.txt文件的新行中添加一个新列表

时间:2017-10-21 12:56:03

标签: python python-3.x list

我试图在Python 3中将列表添加到现有的.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

我希望以下显示

string1 integer1a integer1b

string2 integer2a integer2a

...

如何在插入每个列表后添加新行?

2 个答案:

答案 0 :(得分:2)

您可以使用Python 3 print()函数轻松完成此操作,只需使用sepfile参数指定分隔符和文件,print()即可你的详细信息:

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

请注意,我将list参数重命名为iterable,因为使用list会影响内置的list类,并且该函数应该适用于任何可迭代的。

如果您将以下内容添加到文件顶部,则此代码也适用于Python 2:

from __future__ import print_function

答案 1 :(得分: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")