file.read().splitlines()
5 Réponses :
Vous avez un fichier de configuration sain. Lisez ce qui suit;
Essayez ceci:
firstLine = file.readline() if firstLine.startsWith("[Heading A]"): for line in file: //code
Ce qui suit pourrait fonctionner.
filename = os.path.abspath(r'C:\x\y\Any.ini') #Using absolute path file_lines = open(filename, 'r', encoding='UTF-8').readlines()[1:] for line in file_lines: print(line)
Pour ajouter des explications:
pour la lecture d'une ligne de fichier par ligne, voir ici . p>
Votre problème est que vous utilisez plusieurs appels qui lisent chacun une ou plusieurs lignes de la Le fichier et cette ligne est parti pour l'appel de lecture suivant - voir mes commentaires dans le code: p> Ce que vous voulez faire est de lire la ligne par ligne et de laisser tomber le sur Rubrique A CODE>: P> filename = os.path.abspath(r'C:\x\y\Any.ini') #Using absolute path
file = (open(filename, 'r', encoding='UTF-8'))
for line in file:
if not ("Heading A") in line: print (line)
Ceci est dû au fait que le pointeur de lecture (ou la position du flux doit être spécifique) avance lorsque vous ithétiez via le fichier. Dans votre cas, les deux puisque vous voulez lire des lignes " Rubrique A ', vous pouvez simplement lire toutes les lignes une fois que vous l'avez rencontrée. Le code pour la même chose devrait ressembler à quelque chose comme: p> pour code> Les boucles doivent être tenues responsables. Lorsque vous appelez
Readlines () CODE> dans la seconde boucle, il ne boucle que dans les lignes restantes dans le fichier, et on dirait que cela ressemble à des lignes de saut.
Qu'est-ce que vous obtenez lorsque vous modifiez
fichier.readlines () [1:] code> à
fichier.readlines () code>
file.readlines () [1:] me donne de b et fichier.readlines () à partir d'un [1]