Copie d'un fichier ligne par ligne en python
Je suis en train d'écrire un programme en python pour copier un fichier ligne par ligne dans un nouveau fichier. Le code que j'ai est ci-dessous dans lequel je suis à l'aide d'une boucle pour copier le fichier ligne par ligne.
Cependant, puisque le nombre de lignes dans le fichier peut changer, est-il un moyen de copier un fichier ligne par ligne en python sans l'aide d'une boucle qui s'appuie sur les chiffres, et au lieu de cela repose sur quelque chose comme le caractère EOF pour terminer la boucle?
import os
import sys
i = 0
f = open("C:\\Users\\jgr208\\Desktop\\research_12\\sap\\beam_springs.$2k","r")
copy = open("C:\\Users\\jgr208\\Desktop\\research_12\\sap\\copy.$2k","wt")
#loop that copies file line by line and terminates loop when i reaches 10
while i < 10:
line = f.readline()
copy.write(str(line))
i = i +1
f.close()
copy.close()
copy
est une confusion de nom parce que Python a un copy
module."je suis en train d'écrire un programme en python pour copier un fichier ligne par ligne dans un nouveau fichier." Pourquoi?
Pourquoi êtes-vous en passant la ligne d'str() avant de l'écrire? Il devrait venir en tant que chaîne, ainsi str() est redondant.
Je l'ai dit en dessous, au plus tard dans le programme, je vais avoir à modifier une ligne dans le fichier donc je ne peux pas lire le fichier à la fois. Au lieu de cela, j'ai dupliquer le fichier ligne par ligne.
OriginalL'auteur jgr208 | 2012-07-20
Vous devez vous connecter pour publier un commentaire.
Vous pouvez parcourir les lignes d'un fichier objet en Python par itération sur le fichier de l'objet lui-même:
De la docs sur les objets de fichier:
OriginalL'auteur Andrew Clark
Fichiers peuvent être itérées directement, sans la nécessité d'un appel explicite à
readline
:copy.write(line)
Je pense que vous vouliez direJe l'ai fait, merci pour l'attraper.
OriginalL'auteur chepner
Voir
shutil
module de meilleures façons de faire ce que la copie de la ligne-par-ligne:Edit: Votre question dit que vous êtes la copie, ligne par ligne, parce que le fichier source est volatile. Quelque chose sent mauvais au sujet de votre conception. Pourriez-vous partager plus de détails sur le problème à résoudre?
OriginalL'auteur Steven Rumbalski
Écriture ligne par ligne peut être lent lorsque vous travaillez avec des données de grande taille. Vous pouvez accélérer les opérations de lecture/écriture par la lecture/écriture d'une série de lignes à la fois. Veuillez vous référer à ma réponse à une question similaire ici
OriginalL'auteur computerist