Как выполнить скрипт 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