Comment exécuter un script python et écrire une sortie dans un fichier txt?

j'exécute un .fichier py, qui crache une chaîne de caractères. Cette commande fonctionne très bien

execfile ('file.py')1-->

Mais je veux que la sortie (en plus d'être affichés dans le shell) écrit dans un fichier texte.

j'ai essayé ceci, mais ça ne marche pas :(

execfile ('file.py') > ('sortie.txt')

Tout ce que j'obtiens est:

tugsjs6555

False

je suppose que "False" se réfère à la sortie fichier n'ayant pas été écrit avec succès: (

Merci pour votre aide

8
demandé sur user2957951 2014-02-23 06:09:09

8 réponses

ce que vous faites est de vérifier la sortie de execfile('file.py') contre la corde 'output.txt'

vous pouvez faire ce que vous voulez avec subprocess

#!/usr/bin/env python
import subprocess
with open("output.txt", "w+") as output:
    subprocess.call(["python", "./script.py"], stdout=output);
13
répondu Nick Beeuwsaert 2014-02-23 02:50:17

cela va aussi fonctionner, en raison de diriger standard vers la sortie du fichier.txt avant l'exécution "file.py":

import sys

orig = sys.stdout
with open("output.txt", "wb") as f:
    sys.stdout = f
    try:
        execfile("file.py", {})
    finally:
        sys.stdout = orig

alternativement, exécutez le script dans un sous-processus:

import subprocess

with open("output.txt", "wb") as f:
    subprocess.check_call(["python", "file.py"], stdout=f)

si vous voulez écrire dans un répertoire, en supposant que vous voulez hardcode le chemin du répertoire:

import sys
import os.path

orig = sys.stdout
with open(os.path.join("dir", "output.txt"), "wb") as f:
    sys.stdout = f
    try:
        execfile("file.py", {})
    finally:
        sys.stdout = orig
4
répondu aknuds1 2014-02-23 03:17:34

Utilisez ceci à la place:

text_file = open('output.txt', 'w')
text_file.write('my string i want to put in file')
text_file.close()

Mettre dans votre fichier principal et aller de l'avant et de l'exécuter. Remplacez la chaîne dans la 2ème ligne par votre chaîne ou une variable contenant la chaîne que vous voulez afficher. Si vous avez d'autres questions, postez ci-dessous.

1
répondu Remington Thurber 2014-02-23 02:44:26

la façon la plus simple d'exécuter un script et d'obtenir la sortie d'un fichier texte est de taper ce qui suit dans le terminal:

PCname:~ / Path/WorkFolderName$ python scriptname.py>output.txt

*assurez-vous que vous avez créé la sortie.txt dans le dossier de travail avant d'exécuter la commande.

1
répondu Dibin Joseph 2015-11-30 11:38:05
file_open = open("test1.txt", "r")
file_output = open("output.txt", "w")

for line in file_open:
    print ("%s"%(line), file=file_output)

file_open.close()
file_output.close()
0
répondu don 2014-02-23 03:06:53

à l'aide de quelques astuces de Remolten dans les postes ci-dessus et quelques autres liens que j'ai écrit le code suivant:

from os import listdir
from os.path import isfile, join
folderpath = "/Users/nupadhy/Downloads"
filenames = [A for A in listdir(folderpath) if isfile(join(folderpath,A))]
newlistfiles = ("\n".join(filenames))
OuttxtFile = open('listallfiles.txt', 'w')
OuttxtFile.write(newlistfiles)
OuttxtFile.close()

le code ci-dessus est pour lister tous les fichiers dans mon dossier de téléchargement. Il enregistre la sortie à la sortie de listallfiles.txt. Si le fichier n'est pas là, il le créera et le remplacera par un nouveau à chaque fois pour exécuter ce code. La seule chose dont vous devez être conscient est qu'il va créer le fichier de sortie dans le dossier où votre script py est enregistré. Voir comment vous allez, espérons que cela aider.

0
répondu Nitin Upadhyay 2016-07-27 01:15:36

si vous utilisez l'invite de commande Windows:

python filename.py >> textfile.txt

la sortie serait redirigée vers le fichier textfile.txt dans le même dossier où le filename.py le fichier est stocké.

Le dessus est seulement si vous avez les résultats montrant sur cmd et vous voulez voir le résultat entier, sans qu'il soit tronqué.

0
répondu Shilpa Amarendrababu Sujatha 2017-02-10 16:39:47

vous pouvez aussi faire cela en allant dans le chemin du dossier où vous avez le script python sauvegardé avec cmd, puis faire le name.py > nom du fichier.txt Cela a fonctionné pour moi sur windows 10

0
répondu Kanasaki Torisowa 2018-03-16 08:57:14