使用文本文档更改列表中的项目

用户名

我有一个问题,我正在运行一个功能,该功能应检查文本文档中的各行,找到匹配的用户名,并在每行的列表中更改第二个密码(其密码重置程序)。文本文档通常如下所示:

test test
username password
hello hi

这是我尝试过的代码。登录时使用了reset_username。(例如,我还包括了登录功能)

密码更改功能:

def password_change():
    for _ in open('info.txt', 'r').readlines():
        login_info = _.split()
        if reset_username == login_info[0]:
            login_info[1] = [password_reenter_txt.get()]
            menu_window()

登录功能:

def txt_file_log_in():

    try:
        for _ in open('info.txt', 'r').readlines():
            login_info = _.split() #split on the space made and store result with 2 strings
            if username_enter_txt.get() == login_info[0] and password_enter_txt.get() == login_info[1]:
                password_fault_report.configure(text='User name and Password Correct')

                global reset_username
                reset_username = username_enter_txt.get()

                messagebox.showinfo('Success', 'You have successfully logged in!')#pop up window informing user for sign up.
                login_window.destroy()
                final_window()

        password_fault_report.configure(text='User name or password incorrect,')

    except:
        password_fault_report.configure(text='No accounts found, you need to sign in first...')

我遇到的错误是它将运行该功能并运行菜单窗口,但是它根本不会更改文档。

我是tk,python的初学者,所以这可能是一个非常愚蠢的错误,对不起。另外,如果我在帖子中犯了一个错误,请让我知道:)

迈克-SMT

'r'open语句中的值允许您“只读”文件。为了写入您要使用的文件,'w'但请记住,这将写入文件并删除之前存在的所有内容,因此我们要确保将所有内容都写回到文件中。

我们可以通过使用列表来存储所有值并根据需要进行更新来完成此操作。

示例代码:

def password_change(reset_username, password_reenter_txt):
    # Create empty list to hold file data.
    login_info = []
    with open('some_file', 'r') as data:
        for _ in data.readlines():
            login_info.append(_.split())
    print(login_info)
    # Check values in list and update if condition true.
    for sub_list in login_info:
        if len(sub_list) > 0:
            if reset_username == sub_list[0]:
                sub_list[1] = password_reenter_txt

    # write new values of list to file if previous condition met.
    with open('some_file', 'w') as data:
        for sub_list in login_info:
            if len(sub_list) > 0:
                data.write('{} {}\n'.format(sub_list[0], sub_list[1]))


for i in range(9):
    password_change('name' + str(i+1), 'pass')

# Check new values in file.
with open('some_file', 'r') as data:
    for _ in data.readlines():
        print(_.strip('\n'))

使用的测试文件数据:

name1 pass1
name2 pass1
name3 pass1
name4 pass1
name5 pass1
name6 pass1
name7 pass1
name8 pass1
name9 pass1

结果:

name1 new_pass
name2 new_pass
name3 new_pass
name4 new_pass
name5 new_pass
name6 new_pass
name7 new_pass
name8 new_pass
name9 new_pass

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Vim中纯文本文档的项目符号列表

来自分类Dev

如何在文本文档中特定标题下创建项目列表?(Linux / Bash)

来自分类Dev

使用变量从python中的文本文档中读取

来自分类Dev

使文本文档成为数字列表

来自分类Dev

使用文本文档中的枚举快速搜索

来自分类Dev

使用文本文档中的枚举快速搜索

来自分类Dev

通过文本文档中的文件列表批量处理文件

来自分类Dev

如何使用批处理命令将变量甚至文本传递到文本文档中?

来自分类Dev

Java编程:比较文本文档中候选者的名称时如何使用compareTo

来自分类Dev

在文本文档中查找特定行

来自分类Dev

文本文档中的C ++行索引

来自分类Dev

如何测试文本文档中编写的HTML代码?

来自分类Dev

在图像文本文档中随机生成合成噪声

来自分类Dev

网络文本文档中的字数导致0

来自分类Dev

如何在文本文档中添加新行

来自分类Dev

Shell脚本从文本文档中调用行

来自分类Dev

删除文本文档中结尾相同的行

来自分类Dev

在Vim中从DOS到Linux的文本文档

来自分类Dev

在文本文档行中查找Sting

来自分类Dev

从文本文档中删除一行

来自分类Dev

从文本文档中删除所有重复的行

来自分类Dev

从bash中的文本文档替换/更新列值

来自分类Dev

scikit-learn:使用DBSCAN集群文本文档

来自分类Dev

使用Windows记事本打开文本文档

来自分类Dev

如何使用cin将带有空格的文本插入C ++中的文本文档中?

来自分类Dev

C ++保存文本文档

来自分类Dev

Marklogic 如何检索文本文档

来自分类Dev

新文本文档与现有文档列表的余弦相似度

来自分类Dev

使用C#将Word文档转换为文本文档

Related 相关文章

热门标签

归档