<p>试试这个:</p>
<p><code>lines = [line.strip().split(',') for line in open("books.txt")]</code></p>
<p>使用列表压缩,您可以将文件读入名为<code>lines</code>的列表,并将文件中的每一行转换为列表列表。你知道吗</p>
<p>以下是我运行时得到的结果:</p>
<pre><code>`lines = [line.strip().split(',') for line in open("books.txt")]
print lines
print lines[2]
print lines [2][1]`
enter code here
[['Animal Farm', '1945', '152', 'George Orwell'], ['To Kill A Mockingbird', '1960', '324', 'Harper Lee'], ['Pride and Prejudice', '1813', '279', 'Jane Austen and Anna Quindlen']]
['Pride and Prejudice', '1813', '279', 'Jane Austen and Anna Quindlen']
1813
</code></pre>
<p>现在有许多编辑。在这里。一定要仔细看:</p>
<pre><code>`def displayBookMenu():
print("\n1: Display All Books")
print("2: Display Shortest Book")
print("3: Display Longest Book")
print("3: Display Oldest Book")
print("4: Display Newest Book")
print("0: End")
choice = int(input("Choice: "))
if choice == 1:
displayAll(populateBooks())
elif choice == 2:
displayShortest()
elif choice == 3:
displayLongest()
elif choice == 4:
displayOldest()
elif choice == 5:
displayNewest()
elif choice == 0:
exit()
else:
print("Invalid Input")
def populateBooks():
lines = [line.strip().split(',') for line in open("books.txt")]
return lines
def displayAll(arrayBooks):
print ("\nAll Books: \n")
#THIS IS WHERE I GET ERROR vvv
for books in arrayBooks:
for each_entry in books:
print each_entry,
print
def displayShortest():
pass
def displayLongest():
pass
def displayOldest():
pass
def displayNewest():
pass
def main():
print("Welcome!")
displayBookMenu()
populateBooks()
main()
</code></pre>
<p>删除<code>displayBooks(populateBooks())</code>,而将其放在<code>if choice ==1</code>语句中。你知道吗</p>