我正在尝试创建一个模块,并且我需要一个命令来删除指定的用户。我需要帮助它找到用户所在的行。然后删除用户名。这是代码。
def delete_usr(usr):
file = open("Username.txt","r+")
count = 0
userfound = False
try:
for user in file.readlines():
count += 1
if usr == user.strip():
userfound = True
BTW我还需要它来删除密码。密码与用户名具有相同的行,并保存在password.txt
中答案 0 :(得分:1)
对您的建议最近的解决方案是:
def delete_usr(usr):
file = open("Username.txt","r+")
count = 0
userfound = False
for user in file.readlines():
#print(user.strip())
count += 1
if usr == user.strip():
userfound = True
#print("yeah")
#break
file.close()
如果你使用try语句,你会发现一种特殊的错误(例如,键不在字典中),并且还应该写出除语句以捕获错误。 如果使用open(file),最好也使用file.close()。如果您使用with语句,如上例所示,您不需要这样做,因为它是自动完成的。
答案 1 :(得分:0)
这应该可以解决问题(只要用户只在一行上,否则删除break
语句):
def delete_usr(usr):
with open("Username.txt","r") as myfile:
lines = myfile.readlines()
for idx, l in enumerate(lines):
if usr==l.split(':')[0]:
lines[idx] = ''
break
with open("Username.txt","w") as myfile:
[myfile.write(i) for i in lines]