<p>我不知道你对剧本的最终意图是什么,但下面的内容可能会有所帮助。Python有一个内置的<code>CSV</code>模块,它可以自动将文件的每一行作为列的列表读入。在</p>
<p>此外,它还有一个CSV <a href="https://docs.python.org/3/library/csv.html#csv.DictReader" rel="nofollow">^{<cd2>}</a>变体,可能对您更有用。这将获取CSV文件中的第一行,并在读入时使用头为每一行自动创建一个字典。在</p>
<p>如果文件不包含标题行,则可以提供合适的<code>fieldnames</code>列表。你不需要用这个功能来创建你的字典。在</p>
<p>下面展示了如何创建<code>people</code>字典。键是每行的<code>username</code>。我将<code>username</code>键从<code>person</code>中删除,因为它成为<code>people</code>使用的密钥:</p>
<pre><code>import csv
def verifylogin():
people = {}
with open("moosebook.txt","r") as f:
for person in csv.DictReader(f):
print("Person: ", person)
username = person['username']
del person['username']
people[username] = person
print("People:", people)
print("Wilma's career:", people['Wilma']['Career'])
verifylogin()
</code></pre>
<p>因此,如果<code>moosebook.txt</code>包含以下条目:</p>
^{pr2}$
<p>您将看到以下输出:</p>
<pre><code>Person: {'Career': 'Builder', 'password': 'Password1', 'username': 'Fred', 'Gender': 'Male'}
Person: {'Career': 'Teacher', 'password': 'Password2', 'username': 'Wilma', 'Gender': 'Female'}
People: {'Wilma': {'Career': 'Teacher', 'password': 'Password2', 'Gender': 'Female'}, 'Fred': {'Career': 'Builder', 'password': 'Password1', 'Gender': 'Male'}}
Wilma's career: Teacher
</code></pre>
<p>如果文件没有标题行,则可以更改以下行:</p>
<pre><code>csv_input = csv.DictReader(f, fieldnames=['username', 'password', 'Gender', 'Career'])
</code></pre>