【发布时间】:2018-09-29 14:20:57
【问题描述】:
我想通过接受用户输入来编辑电子邮件 ID 和电话号码,但我无法通过此代码帮助中的错误来做到这一点。
文件.txt
Jon Snow 996452544 Jon@gmail
Robb 885546694 Robb@gmail
Robert 896756885 Robert@gmail
代码
def editContact():
obj2 = open("address.txt","r")
output = []
old_email=raw_input("Enter old email address : ")
new_email=raw_input("Enter new email address : ")
s = re.sub(old_email, new_email, obj2)
obj1 = open("address.txt","w")
obj1.writelines(s)
【问题讨论】:
-
请更正您的缩进。
-
缩进代码中没有问题正在工作 Traceback(最近一次调用最后一次):文件“./addressBookpy.py”,第 72 行,在
editContact() 文件“./addressBookpy.py” ,第 54 行,在 editContact s = re.sub(old_email, new_email, obj2) 文件“/usr/lib64/python2.6/re.py”,第 151 行,在 sub 返回 _compile(pattern, 0).sub(repl , string, count) TypeError: expected string or buffer 我得到这个错误 -
缩进问题是试图阅读代码并回答你的问题。在您的问题中显示错误,而不是在评论中。
-
你的错误是因为
re.sub的第三个参数应该是字符串而不是文件对象。 -
请注意,打开具有写入权限的文件会将文件截断为零字节,从而破坏现有数据。
标签: python python-2.7 file io