2013-06-10 4 views
7

J'ai un script qui lit un fichier et termine ensuite les tests basés sur ce fichier mais je rencontre un problème car le fichier se recharge après une heure et je ne peux pas le relire le fichier après ou à ce moment-là.Relire un fichier ouvert Python

Alors: GETS NOUV.FICHIER LIRE lit le fichier effectue des tests sur fichier GET NOUV.FICHIER LIRE (avec le même nom - mais qui peut changer si elle fait partie d'une solution) Reads nouveau fichier effectuer la même tests sur le nouveau fichier

Quelqu'un peut-il suggérer un moyen de demander à Python de relire le fichier?

+2

qu'avez-vous essayé? Pourriez-vous nous montrer du code? Quel est le problème exact? – pypat

+2

Comment pouvons-nous vous montrer comment y remédier si vous ne nous montrez pas votre code? –

+0

Déplacez le curseur au début du fichier - fp.seek (0), puis fp.read() –

Répondre

10

Soit seek au début du fichier

with open(...) as fin: 
    fin.read() # read first time 
    fin.seek(0) # offset of 0 
    fin.read() # read again 

ou ouvrez le fichier à nouveau (je préfère cette façon puisque vous sinon gardez le fichier ouvert pendant une heure sans rien faire entre passes)

with open(...) as fin: 
    fin.read() # read first time 

with open(...) as fin: 
    fin.read() # read again 

Mettre cela ensemble

while True: 
    with open(...) as fin: 
     for line in fin: 
      # do something 
    time.sleep(3600) 
12

Vous pouvez déplacer le curseur au début du fichier de la manière suivante:

file.seek(0) 

Ensuite, vous pouvez lire avec succès.

Questions connexes