Python - la lecture, l'analyse et l'écrire dans un fichier
Je suis en train de lire autour de 5000 lignes de code à partir d'un fichier texte ensuite d'analyser et de stocker les valeurs analysées dans un autre fichier texte.
Cependant, je suis en mesure de le faire uniquement pour la première 967 lignes (comme indiqué par le fichier de sortie, qui contient les valeurs analysées de la première 967 lignes seulement).
Voici le simple code que j'ai écrit pour faire ce travail.
infile = open("Input.txt", "r")
outfile = open("Output.txt", "w")
for line in infile.readline():
temp = infile.readline()
value = temp.split("<_|_>")
outfile.write(value[1])
Comment pourrais-je aller sur l'écriture de l'autre de 4000 valeurs bizarres?
- Vous êtes de lire deux lignes de chaque itération. Ne créez pas de temp, il suffit d'utiliser la ligne la place.
- merci pour cette remarque!
Vous devez vous connecter pour publier un commentaire.
Parce que votre
for
itération n'est pas au-dessus des lignes dansinfile
, mais plutôt sur les personnages de sa première ligne. Probablement, la première ligne est 967 caractères.for line in infile.readline()
signifie que vous êtes en train de lire la première ligne deinfile
comme une chaîne de caractères. Les chaînes sont itératif, dans la façon dont une itération sur eux itère sur les caractères de la chaîne. Par conséquent, vous êtes en cours d'exécution de la boucle à chaque fois pour chaque caractère de la ligne.Ce que vous voulez faire est probablement, plutôt, quelque chose comme ceci:
Fichier des objets en Python sont également itératif. Itération sur eux itère sur chaque ligne. Vous pourrait utilisation
for line in infile.readlines()
(Note:readlines
, pasreadline
), mais qui permettrait de lire toutes les lignes dansinfile
sur un immense tableau avant de l'itération. L'itération directement sur le fichier de l'objet ne garde que la dernière ligne de lecture dans la mémoire à la fois.for line in infile:
forme. Aussi, +1 pour l'utilisation dewith
.pourquoi je ne peux pas simplement utiliser
Vous devez lire chaque ligne et de les analyser. vous faites une boucle sur une seule ligne dans le fichier d'entrée. Une approche simple serait d'utiliser la boucle while