AttributeError lorsque vous essayez d'utiliser la méthode seek() pour obtenir la dernière ligne du fichier csv

Je suis en train de retourner la dernière ligne d'un fichier csv. Je suis la modification d'une autre fonction que j'ai écrit précédemment que renvoie la dernière ligne d'un fichier texte. Il semblait fonctionner comme prévu au début, mais maintenant quand j'appelle la fonction renvoie une erreur.

reader.seek(0, os.SEEK_END)
AttributeError: '_csv.reader' object has no attribute 'seek'

import os
import csv
def getLastFile(filename):
    distance = 1024
    with open(filename,'rb') as f:
        reader = csv.reader(f)
        reader.seek(0, os.SEEK_END)
        if reader.tell() < distance:
            reader.seek(0, os.SEEK_SET)
            lines = reader.readlines()
            lastline = lines[-1]
        else:
            reader.seek(-1 * distance, os.SEEK_END)
            lines = reader.readlines()
            lastline = lines[-1]

    return lastline

Quelqu'un peut-il svp m'aider à modifier mon code? J'étais sûr que vous pouvez utiliser cherchent de cette façon, peut-être que je me trompe?

Pourriez-vous nous donner le fichier csv à travailler avec trop?
Vous pouvez seek et tell sur file objets, mais pas sur csv.reader des objets aussi loin que je peux dire. Je ne suis pas sûr qu'il y est une bonne façon de le faire en collaboration avec csv.reader.
Je viens de faire un petit .fichier csv avec 20 lignes et 5 colonnes remplies avec des nombres aléatoires. Le code (je crois) doit travailler avec un générique .fichier csv, de retour de la dernière ligne, donc je ne suis pas sûr que ça aiderait si je l'ai posté, mais je pourrais si vous le souhaitez. Merci!
Flute, c'est frustrant!
Je ne pense pas que c'est un doublon à la cible se réfère à "Comment puis-je dire que je suis sur la dernière ligne" - cette question est "Comment puis-je obtenir la dernière ligne,"... ils ne sont pas synonymes...

OriginalL'auteur Thetravellingfool | 2013-11-30