List 更改文本文件列表中的特定项
我有一个代码,可以尝试更改文本文件列表中的某个项目。文本文件包含电子邮件,每行上的密码有点像登录系统。 代码要求用户输入电子邮件,然后在文本文件的列表中对该用户进行二进制搜索。如果用户在场,那么我想更改该用户的密码,因此在列表中附加[1]项。 这是我到目前为止更改密码的代码List 更改文本文件列表中的特定项,list,python-3.x,append,binary-search,List,Python 3.x,Append,Binary Search,我有一个代码,可以尝试更改文本文件列表中的某个项目。文本文件包含电子邮件,每行上的密码有点像登录系统。 代码要求用户输入电子邮件,然后在文本文件的列表中对该用户进行二进制搜索。如果用户在场,那么我想更改该用户的密码,因此在列表中附加[1]项。 这是我到目前为止更改密码的代码 def ChangePassword(): while True: email=input("Enter the email you want to change the password for"
def ChangePassword():
while True:
email=input("Enter the email you want to change the password for")
res=BinarySearch(logindata,email)
if res:
break
我知道这并不多,但我不知道该怎么做,我该怎么做?如果需要,这里是我的二进制搜索代码
def BubbleSort(logindata):
NoSwaps = 1
N = len(logindata)
logindata = list(logindata)
while NoSwaps == 1:
Count = 1
NoSwaps = 0
for Count in range(N-1):
if logindata[Count] > logindata[Count+1]:
temp = logindata[Count]
logindata[Count] = logindata[Count+1]
logindata[Count+1]=temp
NoSwaps=1
return tuple(logindata)
def BinarySearch(logindata,email):
First=0
Last=len(logindata)-1
while First <= Last:
Midpoint = (First + Last) // 2
if logindata[Midpoint][0] == email:
print("Email Found")
return True
elif logindata[Midpoint][0] > email:
Last = Midpoint - 1
else:
First = Midpoint + 1
print("Not found")
return False
def BubbleSort(登录数据):
NoSwaps=1
N=len(罗金达)
登录数据=列表(登录数据)
当NoSwaps==1时:
计数=1
NoSwaps=0
对于范围(N-1)内的计数:
如果logindata[Count]>logindata[Count+1]:
温度=登录数据[计数]
登录数据[计数]=登录数据[计数+1]
登录数据[计数+1]=临时
NoSwaps=1
返回元组(loginda)
def二进制搜索(登录数据、电子邮件):
第一个=0
Last=len(登录数据)-1
第一封电子邮件:
最后=中点-1
其他:
第一个=中点+1
打印(“未找到”)
返回错误
您是否绝对确定文件已排序?无论如何,python内置程序在任何情况下都可能(至少)和您的实现一样快。你为什么要再次执行搜索?因为我必须使用二进制搜索,这是它的重点,我知道它很烦人,即使它没有那么有效,关于正在排序的文件,它应该像冒泡排序一样按字母顺序排序@卡巴努索说得很清楚,你读一个文件,对它进行气泡排序,二进制查找电子邮件并更改一个项目,然后将结果写入(新文件或原始文件)?是的,这就是我想做的,写入原始文件@kabanus@kabanusTypeError:无效文件-这是我在回答时遇到的错误