<p>以下是创建用户和检查系统中是否存在用户的功能。你知道吗</p>
<p>我们使用<code>Pickle</code>库以字典结构存储用户详细信息。你知道吗</p>
<p>演示代码:</p>
<pre><code>import os
import pickle
user_details_file = "user_details1.txt"
def createNewUser():
"""
Create New USer.
1. Accept USer name and PAssword from the User.
2. Save USer Name and Password to File.
"""
#- Check Login Detail file is present or not.
if os.path.isfile(user_details_file):
#- Load file into dictionary format.
fp = open(user_details_file, "rb")
data = pickle.load(fp)
fp.close()
else:
#- Set empty dictionary when user details file is not found.
data = {}
while 1:
username = raw_input("Enter Username:").strip()
if username in data:
print "User already exist in system. try again"
continue
password = raw_input("Enter password:")
data[username] = password
#- Save New user details in a file.
fp = open(user_details_file, "wb")
pickle.dump(data, fp)
fp.close()
return True
def loginUSer():
"""
Login User.
1. Open User Name and Password file.
2. Accept User name and Password from the User.
3. check User is present or not
"""
#- Check Login Detail file is present or not.
if os.path.isfile(user_details_file):
fp = open(user_details_file, "rb")
data = pickle.load(fp)
fp.close()
else:
#- Load file into dictionary format.
# We can return False from here also but why to tell user that your are first user of this application.
data = {}
username = raw_input("Enter Username:").strip()
password = raw_input("Enter password:").strip()
if username in data and password==data["username"]:
print "You login"
return True
else:
print "No user worong username or password"
return False
if __name__=="__main__":
new_userflag = raw_input("you want to create new user? yes/no").lower()
if new_userflag=="yes":
createNewUser()
loginUSer()
</code></pre>
<p><strong>注意:</p>
<ol>
<li>python2.x中使用了raw\u input()</li>
<li>在python3.x中使用的input</li>
</ol>
<p><strong>链接很少</strong>:</p>
<ol>
<li><a href="https://stackoverflow.com/questions/28277150/write-a-list-in-a-python-csv-file-one-new-row-per-list/28277372#28277372">File modes to read and write</a></li>
<li><a href="https://stackoverflow.com/questions/27745500/how-to-save-a-list-to-a-file-and-read-it-as-a-list-type/27745539#27745539">Pickling and Unpicking</a></li>
</ol>