Comment obtiendriez-vous uniquement la première ligne d’un fichier sous forme de chaîne avec Python?
Utilisez la méthode .readline()
(documents Python 2, documents Python 3 ):
with open('myfile.txt') as f: first_line = f.readline()
Quelques notes:
f.readline()
contiendra une nouvelle ligne. Vous pouvez utiliser f.readline().ssortingp()
pour supprimer la nouvelle ligne. with
ferme automatiquement le fichier à la fin du bloc. with
ne fonctionne que dans Python 2.5 et supérieur, et dans Python 2.5, vous devez utiliser from __future__ import with_statement
infile = open('filename.txt', 'r') firstLine = infile.readline()
fline=open("myfile").readline().rssortingp()
Beaucoup d’autres réponses ici, mais pour répondre précisément à la question que vous avez posée (avant que @MarkAmery ne soit allé éditer la question initiale et changé le sens):
>>> f = open('myfile.txt') >>> data = f.read() >>> # I'm assuming you had the above before asking the question >>> first_line = data.split('\n', 1)[0]
En d’autres termes, si vous avez déjà lu dans le fichier (comme vous l’avez dit), et que vous avez un gros bloc de données en mémoire, alors pour obtenir la première ligne de manière efficace, faites un split () sur le caractère de nouvelle ligne seulement, et prenez le premier élément de la liste résultante.
Notez que cela n’inclut pas le caractère \n
à la fin de la ligne, mais je suppose que vous ne le voulez pas de toute façon (et un fichier à une seule ligne peut ne pas en avoir un). Notez également que, bien que ce soit assez court et rapide, il crée une copie des données, de sorte que pour un gros volume de mémoire, vous ne pouvez pas le considérer comme “efficace”. Comme toujours, ça dépend …
Cela devrait le faire:
f = open('myfile.txt') first = f.readline()
Pour revenir au début d’un fichier ouvert, procédez comme suit:
my_file.seek(0)
first_line = next(open(filename))
f1 = open("input1.txt", "r") print(f1.readline())