5 回答
TA贡献1786条经验 获得超11个赞
您不能只转储字典,因为就该write方法而言,您正在尝试转储内存位置。
您需要像这样检查每个字典键和项目。您也不需要关闭文件,因为当您离开循环时,with open它会自行关闭。
with open('cars.txt', 'w') as f:
for car, vals in cars.items:
f.write(car)
for val in values:
f.write(val)
注意: 我还没有测试过这些。
TA贡献1735条经验 获得超5个赞
首先使用分隔符分割原始文件数据'\n\n'。然后使用字典访问新数据。然后将结果写入新文件。
with open('cars.txt') as fp, open('new_cars.txt', 'w') as fw:
for car in fp.read().split('\n\n'):
car_name = car.split('\n', 1)[0] + '\n'
fw.write(car_name + ''.join(cars[car_name]) + '\n')
TA贡献1818条经验 获得超11个赞
根据您的调试错误,您应该只将dict转换为str像这样
with open('cars.txt', 'w') as f:
f.write(str(cars))
f.close()
TA贡献1876条经验 获得超7个赞
在你的 write 语句中,你可以简单地这样做:
f.write('\n'.join(car + ''.join(cars[car]) for car in cars))
TA贡献1843条经验 获得超7个赞
这里有多个问题:
该错误的意思就是它所说的——你不能将 a 写入
dict
文件。要解决这个问题,只需将 转换
dict
为 astr
,如下所示:dict_as_str = str(dict)
,然后f.write(dict_as_str)
一旦你解决了这个问题,看看你拥有什么:你可能不会看到你想要的。这是因为以
f.write
相同的方式转换它print
,所以如果你运行print(dict_as_str)
,它基本上看起来像一个字典。要解决这个问题,您必须执行不止一行代码。我不会给你代码,你需要自己尝试弄清楚。如果您尝试但无法使其正常工作,那么您可以发布另一个问题。
添加回答
举报