Lire uniquement la première ligne d’un fichier?

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:

  1. Comme indiqué dans la documentation, à moins que ce soit la seule ligne du fichier, la chaîne renvoyée par f.readline() contiendra une nouvelle ligne. Vous pouvez utiliser f.readline().ssortingp() pour supprimer la nouvelle ligne.
  2. L’instruction with ferme automatiquement le fichier à la fin du bloc.
  3. L’instruction with ne fonctionne que dans Python 2.5 et supérieur, et dans Python 2.5, vous devez utiliser from __future__ import with_statement
  4. Dans Python 3, vous devez spécifier l’encodage du fichier que vous ouvrez. Lire la suite…
 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())