List 更改文本文件列表中的特定项

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"

我有一个代码,可以尝试更改文本文件列表中的某个项目。文本文件包含电子邮件,每行上的密码有点像登录系统。 代码要求用户输入电子邮件,然后在文本文件的列表中对该用户进行二进制搜索。如果用户在场,那么我想更改该用户的密码,因此在列表中附加[1]项。 这是我到目前为止更改密码的代码

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:无效文件-这是我在回答时遇到的错误