For循环,将每一行打印到一个文件中。电子

2024-04-20 05:40:21 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图做一个for循环,将列表中的每一行打印到一个文件中,但是我得到了这个错误。有什么帮助吗?谢谢

def write_file(filename, rabbitlist, foxlist, finallist, averagefox, averagerabbit):

    # Opens File for Data Input
    outfile = open(str(filename) + ".csv", 'w')

    # Writes Data to Newly Created File
    finalresult = "\n".join(", ".join(map(str, l)) for l in finallist)
    outfile.write(str("Day, Foxes, Rabbits, , Average Foxes, Average Rabbits\n"))
    lastline = [0, foxlist[0], rabbitlist[0], " ", averagefox, averagerabbit]
    for item in lastline:
        outfile.write(" %s", item)
    outfile.close()

我得到的错误是:Python: TypeError: takes exactly 1 argument (2 given)


Tags: infordata错误filenameoutfilefilewrite
3条回答

既然您正在连接csv,为什么不使用csv模块呢。然后,您的方法变成:

import csv

def write_file(filename,
               rabbitlist,
               foxlist,
               finallist,
               averagefox,
               averagerabbit):
    header_row = ['Day','Foxes','Rabbits',' ','Average Foxes','Average Rabbits']
    with open(filename,'w') as f:
        writer = csv.writer(f, delimiter=',')
        writer.writerow(header_row)
        writer.writerows(finallist)
        writer.writerow([0,
                         foxlist[0],
                         rabbitlist[0],
                         " ",
                         averagefox,
                         averagerabbit])

^{}将自动关闭该文件,csv模块有writerows,它按照名称所示执行。你知道吗

。只写accepts 1 parameter,所以我认为你可以这样做

def write_file(filename, rabbitlist, foxlist, finallist, averagefox, averagerabbit):

    # Opens File for Data Input
    outfile = open(str(filename) + ".csv", 'w')

    # Writes Data to Newly Created File
    finalresult = "\n".join(", ".join(map(str, l)) for l in finallist)
    outfile.write(str("Day, Foxes, Rabbits, , Average Foxes, Average Rabbits\n"))
    lastline = [0, foxlist[0], rabbitlist[0], " ", averagefox, averagerabbit]
    for item in lastline:
        outfile.write(" %s" % item)
    outfile.close()

在python中,File的write方法只接受一个参数,而传递两个参数。你知道吗

要么你能做outfile.write文件(“%s”%item)

或者更好的方法是用泡菜

相关问题 更多 >