Python 已解决'_io.TextIOWrapper';对象没有属性';流行音乐';
我有一本由文本文件变成的字典 文本文件:Python 已解决'_io.TextIOWrapper';对象没有属性';流行音乐';,python,python-3.x,dictionary,key,key-value,Python,Python 3.x,Dictionary,Key,Key Value,我有一本由文本文件变成的字典 文本文件: banana delicious yellow watermelon big red orange juicy vitamin c 转换为名为d的字典后: {'BANANA' : ['delicious', 'yellow'], 'WATERMELON' : ['big', 'red'], 'ORANGE' : ['juicy', 'vitamin c']} 我正在删除字典和原始文件中的整个键和值。例如,我想删除ORANGE的全部记录 de
banana
delicious
yellow
watermelon
big
red
orange
juicy
vitamin c
转换为名为d的字典后:
{'BANANA' : ['delicious', 'yellow'],
'WATERMELON' : ['big', 'red'],
'ORANGE' : ['juicy', 'vitamin c']}
我正在删除字典和原始文件中的整个键和值。例如,我想删除ORANGE的全部记录
def Delete():
delname = input("Please enter the name you would like to delete: \n").upper()
with open(file, 'r+') as f:
f.read()
f.pop(delname,None)
f.close()
print(f"You have deleted {delname}.")
但它给了我错误。我可以知道我怎样才能解决这个问题吗
AttributeError: '_io.TextIOWrapper' object has no attribute 'pop'
f
是一个文件。你认为什么是f.pop?虽然我们当然可以尝试帮助修复每一种不同的方法,但最好还是询问一下如何正确地进行操作。看起来您希望在适当的位置更新文本文件。这在理论上是可能的,但过于挑剔和脆弱。相反,你可以像现在这样将文件转换成字典,从字典中删除条目,然后通过颠倒阅读过程从字典中重新创建文件。Grace:@BoarGules的建议基本上与我在回答其他问题时告诉你的一样-将数据读入dict,更新dict,重新写入整个文件。在这种情况下,您可以使用字典的pop()
方法来更新它。@martineau我没有看到重复的问题,否则我不会回答