|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
已有字典文件 Dictionary_phonebook.py 如下:
- people = {
- 'Alice': {
- 'phone': '2431',
- 'addr': 'Foo drive 23'
- },
- 'Beth': {
- 'phone': '9102',
- 'addr': 'Bar street 42'
- },
- 'Cecil': {
- 'phone': '3158',
- 'addr': 'Baz avenue 90'
- }
- }
复制代码
我希望写一段代码用来更新Dctionary_phonebook.py文件(而不是生成新的文件来覆盖它)。例如,当加入新的人名时,我希望删除最后一行的 "}", 然后写入新内容。但是以下代码会报错:
- fpeople = open('Dictionary_phonebook.py', 'a')
- fpeople.seek(-1, 1)
- fpeople.close()
复制代码
报错信息如下:
Traceback (most recent call last):
File "D:\PycharmProjects\Phonebook_related\phonebook_update.py", line 25, in <module>
fpeople.seek(-1, 1)
io.UnsupportedOperation: can't do nonzero cur-relative seeks
这段报错信息的含义是什么?怎样实现上述修改文件的功能?
这样可以实现,不过前提是 } 属于读取的字典最后一个字符,不能有多余的字符:
- fpeople = open('Dictionary_phonebook.py', 'a')
- lenght = fpeople.tell()
- fpeople.seek(lenght-1)
- fpeople.truncate()
- data = ''',
- 'Fishc': {
- 'phone': '3158',
- 'addr': 'Baz avenue 90'
- }
- }'''
- fpeople.write(data)
- fpeople.close()
复制代码
另外像楼上说所,建议还是使用 pickle 之类的库比较友好方便
|
|