Пакет Stata, вызванный из Python: вывод консоли Stata Pata в командную строку (окна)

У меня есть скрипт Python, который вызывает несколько файлов Stata.do:

from subprocess import call
Stata_exec = "D:/Stata 12 MP2/StataMP-64.exe"
dofile = "D:/Test.do" 
call( "\"{0}\" do /e \"{1}\"".format(Stata_exec, dofile), shell=True)

Я хотел бы, чтобы прогресс файла do был передан на консоль в реальном времени, поэтому он будет интегрирован с другим выходом Python. Это возможно?

Вот тестовый файл:

/*
 Merge some big files
*/
clear *

// Create Dataset A (8000 variables, 300 observations)
set obs 300
gen ID = _n
forval i = 1/8000 {
 gen variableA'i' = runiform()
}
tempfile dataA
save "'dataA'"

// Dataset B (5000 variables, 300 observations)
clear 
set obs 300
gen ID = _n
forval i = 1/5000 {
 gen variableB'i' = runiform()
}

sort ID
// Attempt merge
merge 1:1 ID using 'dataA'
exit, clear

Изменение: добавлен оператор импорта

1 ответ

Вы можете использовать команду log для эхо-копирования сеанса Stata в файл или, возможно, команду file для записи в текстовый файл определенных сообщений (например, "Data A Created"). Python должен иметь возможность отображать такие файлы с помощью subprocess.call(["tail", "-F", logfilename])

licensed under cc by-sa 3.0 with attribution.