-1
votes

Python Supprimer la ligne et écrivez dessus

J'ai PROPLEM ici avec mon code

J'utilise pour la boucle pour enregistrer les résultats dans le fichier TXT

Chaque fois que je l'utilise, il enregistre la dernière ligne et supprimez l'ancienne ligne

voici le code: xxx

Donc, après avoir exécuté le code, il enregistre le dernier domaine ou les derniers résultats et supprimez les anciens résultats

donc je veux donc je veux solution merci.


4 commentaires

"Chaque fois que je l'utilise, il sauve la dernière ligne et supprimez l'ancienne ligne." Que voulez-vous que cela fasse à la place?


Ouvrez le fichier pour l'annexe, soit ouvert et fermez-le en dehors de la boucle.


Aller à disparaître demandes ici. Ce n'est pas un problème lié au paquet de demandes.


Il y a aucune variable nommée domaine alors comment le fichier peut-il écrire?


4 Réponses :


0
votes

essayez de l'ouvrir avec A au lieu de w , donc: xxx

il devrait ajouter au fichier au lieu d'écrire


0 commentaires

0
votes

Vous devez utiliser 'A' au lieu de "W" dans "File = Ouvrir (Enregistrer, 'W')"


0 commentaires

1
votes

Ouvrez le fichier en mode APPEND:

for i in domains:
    requests.get(i)
    if req.status_code == 200:
        print('[+]:', i + '/')
        file = open(save,'a')
        file.write(i)
        file.close()


0 commentaires

0
votes

Le problème ici est survenu parce que vous ouvrez le fichier pour écrire sur chaque itération de la boucle. Parce que vous ouvrez le fichier avec le mode 'W' code>, le fichier est écrasé à chaque fois. (Voir Documentation .)

Il serait préférable d'ouvrir le fichier une seule fois, en dehors de la boucle. P>

par exemple: p> xxx pré>

Vous pouvez également utiliser avec Code> en conjucque avec la fonction Ouvrir code> Fonction: p> xxx pré>

Dans ce cas, il n'y a pas besoin d'un appel explicite à File.Close () code>. Ceci sera fait automatiquement lorsque la boucle se termine, ou même si quelque chose se passe à l'intérieur du bloc code> avec code> comme une exception étant soulevée (Erreur survenant) ou un retour code> de la fonction ( Le cas échéant). p>

Sachez que, en raison de la mise en mémoire tampon de sortie, les données écrites dans le fichier pendant une itération pourraient ne pas être écrites dans le fichier jusqu'à la fermeture de l'itération ultérieure ou après la fermeture du fichier. Si cela poserait un problème, vous pouvez insérer un appel flush code> pour forcer une écriture de bas niveau afin que d'autres processus puissent voir les données: p> xxx pré> S'il y a une raison pour laquelle vous devez ouvrir le fichier à l'intérieur de la boucle, vous pouvez l'ouvrir en mode APPEND à l'aide de 'A' code> et les données seront écrites après la fin de la fin de l'existant. déposer. (Encore une fois, voir la documentation liée précédemment.) Par exemple: P> xxx pré>

ou encore, mieux comme ceci: p>

                 for i in domains:
                     with open(save, 'a') as file:
                         # do some stuff...
                         file.write(some_data)


0 commentaires