Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/326.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 读取.txt并将内容输入文本框_Python_Tkinter_Text Files - Fatal编程技术网

Python 读取.txt并将内容输入文本框

Python 读取.txt并将内容输入文本框,python,tkinter,text-files,Python,Tkinter,Text Files,我试图读取一个txt文件,其中存储用户名和密码,如下所示: 用户名|密码 让python将这两个输入到单独的文本框中,基本上是一个用于登录的基本“记住我”系统 savehover()如果运行了savepassinput(),则将小部件的前景色更改为不同的颜色 如果.txt为空,则不应运行savepassinput(),也不应运行pass 我这里的代码没有给我任何错误,但是它没有在文本框中输入任何内容,也没有更改按钮的颜色 我的.txt文件中的所有内容都经过了格式化以适合代码,那么问题出在哪里呢

我试图读取一个txt文件,其中存储用户名和密码,如下所示:

用户名|密码

让python将这两个输入到单独的文本框中,基本上是一个用于登录的基本“记住我”系统

savehover()
如果运行了
savepassinput()
,则将小部件的前景色更改为不同的颜色

如果.txt为空,则不应运行
savepassinput()
,也不应运行pass

我这里的代码没有给我任何错误,但是它没有在文本框中输入任何内容,也没有更改按钮的颜色

我的.txt文件中的所有内容都经过了格式化以适合代码,那么问题出在哪里呢

def savepassinput():
    savehover()
    passtxt = open("rememberme.txt", 'r')
    passtxt.read()
    usr, pas = line.strip().split("|")
    textentry.insert(usr)
    textentry2.insert(pas)

def savepasscheck():
    passtxt = open("rememberme.txt", 'r')
    passtxt.read()
    if passtxt.read() == "":
        pass
    else:
        savepassinput()
    passtxt.close()

假设代码中的
textbox.insert()
是正确的:

首先,您应该尝试使用语句,因为它可以确保正确打开和关闭文件

其次,您将
read()
文件读取两次。它所做的是在第一次读取时将光标移动到文件末尾,然后如果再次读取,它将什么也不读取。这就是为什么没有调用其他函数的原因

然后,这样做比较:
如果passtxt.read()==”:
通常不是最好的方法,因为您的文件可能包含空格、制表符或换行符等空格。您可以做的是
strip()
刚才读取的字符串

最后,您可以使用
pass
摆脱无用的
if
案例。只需检查它是否为空->如果不是,请保存,如果是,请不要保存

我会这样写:

def savepasscheck():
    with open("rememberme.txt", 'r') as passtxt:
        if passtxt.read().strip() is not "":
            savepassinput()
所以这个函数就是读取和检查。您应该真正遵守规则,并将您阅读的文本传递给其他函数:如下所示:

def savepasscheck():
    with open("rememberme.txt", 'r') as passtxt:
        content = passtxt.read().strip()
        if content is not "":
            savepassinput(content)

def savepassinput(content):
    savehover()
    usr, pas = content.split("|")
    textentry.insert(usr)
    textentry2.insert(pas)

看起来您没有正确使用file
read()
方法,因为该方法返回读取的数据,因此在
savepassinput()
函数中,您需要将其分配给变量(例如
line