Как выполнить скрипт python и записать вывод в txt-файл?

Я выполняю .файл py, который выплевывает строку give. Эта команда отлично работает

execfile ('file.py')

но я хочу, чтобы вывод (в дополнение к тому, что он показан в оболочке) был записан в текстовый файл.

Я пробовал это, но это не работает: (

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

все, что я получаю это:

tugsjs6555

False

Я думаю, что "False" относится к выходу файл не записывается успешно : (

Спасибо за помощь

8 ответов


что вы делаете, это проверка вывода execfile('file.py') на строку 'output.txt'

вы можете делать то, что вы хотите сделать с подпроцессом

#!/usr/bin/env python
import subprocess
with open("output.txt", "w+") as output:
    subprocess.call(["python", "./script.py"], stdout=output);

Это также будет работать, из-за направления стандарта на вывод файла.txt перед выполнением "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

кроме того, выполните сценарий в подпроцессе:

import subprocess

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

Если вы хотите написать в каталог, предполагая, что вы хотите жестко закодировать путь к каталогу:

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

используйте этот код:

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

поместите его в свой основной файл и запустите его. Замените строку во второй строке на строку или переменную, содержащую строку, которую вы хотите вывести. Если у вас есть дополнительные вопросы, напишите ниже.


самый простой способ запустить скрипт и получить вывод в текстовый файл-это ввести в терминал:

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

*убедитесь, что вы создали выход.txt в рабочей папке перед выполнением команды.


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()

используя некоторые подсказки от Remolten в приведенных выше Сообщениях и некоторых других ссылках, я написал следующее:

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()

код выше, чтобы перечислить все файлы в моей папке Загрузки. Он сохраняет вывод на вывод в listallfiles.формат txt. Если файла там нет, он будет создавать и заменять его новым каждый раз, чтобы запустить этот код. Единственное, что вам нужно помнить, это то, что он создаст выходной файл в папке, где сохранен ваш скрипт py. Посмотрим, как пойдет, надеюсь помогает.


Если вы используете файл в командной строке Windows:

python filename.py >> textfile.txt

вывод будет перенаправлен в текстовый файл.txt в той же папке, где filename.py файл сохраняется.

выше только если у вас есть результаты показаны на cmd и вы хотите увидеть весь результат без его усечения.


вы также можете сделать это, перейдя к пути к папке, в которой у вас есть скрипт python, сохраненный в cmd, а затем выполните name.py > filename.формат txt Это сработало для меня в windows 10