2014-07-03 6 views
0

Est-ce que quelqu'un connaît un moyen facile d'entrer un fichier au début et de l'ajouter sur la première ligne?Ajouter au début d'un fichier en python

J'ai essayé de faire ce qui suit:

f.seek(0) 

f.write("....") 

f.close() 

Le seul problème est qu'il ne pas ajouter une nouvelle première ligne avec ce que je veux, plutôt le remplace.

Est-ce que quelqu'un sait d'une façon quelconque, soit en écrivant le fichier pour ajouter la dernière ligne sur le dessus ou après la fermeture et rouvrir pour ajouter une ligne à la première ligne sans écraser ou remplacer quoi que ce soit?

Répondre

2

Bien que laid il fonctionne:

# read the current contents of the file 
f = open('filename') 
text = f.read() 
f.close() 
# open the file again for writing 
f = open('filename', 'w') 
f.write("This is the new first line\n") 
# write the original contents 
f.write(text) 
f.close() 

aussi le mot que vous cherchez est pré-attente. Aussi je ne pense pas que cela fonctionnera si vous ne pouvez pas charger le fichier en mémoire (si c'est trop grand).

S'il est trop grand, vous pouvez écrire la ligne, puis écrire ligne par ligne.

Autre (havent testé)

vous pouvez utiliser fileinput

>>> import fileinput 
>>> for linenum,line in enumerate(fileinput.FileInput("file",inplace=1)): 
... if linenum==0 : 
...  print "new line" 
...  print line.rstrip() 
... else: 
...  print line.rstrip() 
... 

De: How to insert a new line before the first line in a file using python?

Questions connexes