我不能让列表用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

这应该做:

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)

我没能理解你需要两个参数。

这是我的代码:

def save(initial_money,records):
first_line = str(initial_money) + "n"
with open('records.txt', 'w') as f:
f.writelines(first_line)
for items in records:
f.writelines(f"{items[0]} {items[1]} ")
f.writelines('n')
records = [['flower', '200'], ['ham', '60'], ['van', '150']]
initial_money = 0
save(initial_money, records)

最新更新