我想用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)