首页 > 解决方案 > 我不能让列表写成 txt (python)

问题描述

我想用writelines()让列表写入txt,但是运行之后,我的txt里面什么都没有。我的代码有什么问题?

如果可以的话,请帮助我。谢谢!

示例列表(记录):[['flower', '200'], ['ham', '60'], ['van', '150']]

我想在txt中写如下:

花 200

火腿 60

面包车 50

我的代码:

def save(initial_money, records): # I need both so don't change.
    with open('records.txt', 'w') as f: 
        first_line = str(initial_money) + "\n"
        f.write(first_line)
        return initial_money
        L = []
        for rec, amt in records:
            all_rec = str(rec) + " " + str(amt) + "\n"
            L.append(all_rec)
        f.writelines(records) # must use writelines
        return records

标签: pythonfor-loopconsole.writeline

解决方案


这应该这样做:

def save(initial_money, records):
    with open('records.txt', 'w') as f: 
        first_line = str(initial_money) + "\n"
        f.write(first_line)
        for rec, amt in records:
            f.write(str(rec) + " " + str(amt) + "\n")

第一次返回关闭函数,您也不需要第二次返回,records可作为参数使用。

如果你坚持使用writelines,你可以修改如下:

def save(initial_money, records):
    with open('records.txt', 'w') as f: 
        first_line = str(initial_money) + "\n"
        f.write(first_line)
        L = []
        for rec, amt in records:
            L.append(str(rec) + " " + str(amt) + "\n")
        f.writelines(L)

推荐阅读