我想打印另存为updated_quotes
的csv文件的最后13行。它返回语法错误。我怎样才能解决这个问题?
import csv
from collections import deque
with open('updated_quotes', 'r') as csv_file:
csv_reader = csv.reader(csv_file)
def tail(csv_file, n=13):
'Return the last n lines of a file'
print(return deque(open(csv_file), n))
答案 0 :(得分:1)
您应该在tail
函数中打开文件,并将文件对象传递给csv.reader
import csv
from collections import deque
def tail(csv_file, n=13):
'Return the last n lines of a file'
with open(csv_file, 'r') as f:
csv_reader = csv.reader(f)
return deque(csv_reader, n)
print (tail("updated_quotes", n=13))
答案 1 :(得分:0)
您的直接问题是tail
中的最后一行是:
print(return deque(open(csv_file), n))
我敢打赌,您在开发时会使用print(deque(open(csv_file), n))
,并打算将其编辑为return(deque(open(csv_file), n))
。
但是这里还有更多错误。永远不会调用tail
方法。继续进行下去,我想您会发现,使用csv阅读器的所有内容都必须位于with
语句的旁边。
尝试作为入门:
import csv
from collections import deque
def tail(csv_file_name, n=13):
'Return the last n lines of a file'
with open(csv_file_name, 'r') as csv_file:
csv_reader = csv.reader(csv_file)
return(deque(csv_reader, n))
last_13 = tail('updated_quotes')
print(last_13)