2017-09-10 41 views
0

试图通过Python创建一个登录工人 当我得到一个简单但令人困惑的错误时。得到错误读取文件

这里是我得到的错误。

Traceback (most recent call last): 
    File "stratixlogin.py", line 87, in <module> 
    main() 
    File "stratixlogin.py", line 78, in main 
    login_worker() 
    File "stratixlogin.py", line 51, in login_worker 
    data = f.read() 
ValueError: Mixing iteration and read methods would lose datanter code 

这里就是错误的现象发生:

with open("global_users.txt", "r") as f: 
    for line in f: 
     data = f.read() 
     if data == username_ask: 
      print(G+"Success!") 

      password_ask = raw_input(O+"Password:"+W+" ") 

      with open("global_passwords.txt", "r") as f: 
       for line in f: 
        data = f.read() 
        if data == password_ask: 
         print(G+"Success!") 

        else: 
         print(R+"Incorrect Password!") 

     else: 
      print(R+"No Users Found!") 

我不知道的错误做法是什么,但我对如何解决这一困惑。有任何想法吗?

回答

0

您无法通过文件(for回路)和read()的线路混合迭代。
这就够了:

with open("global_users.txt", "r") as f: 
    for data in f: 
     if data == username_ask: 
      print(G+"Success!") 

      password_ask = raw_input(O+"Password:"+W+" ") 

      with open("global_passwords.txt", "r") as f: 
       for line in f: 
        data = f.read() 
        if data == password_ask: 
         print(G+"Success!") 

        else: 
         print(R+"Incorrect Password!") 

     else: 
      print(R+"No Users Found!") 
+0

好的,谢谢!我现在只需修复我的新发生的错误:)感谢帮助的人! –