3

doいくつかの Stataファイルを呼び出す Python スクリプトがあります。

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ファイルは次のとおりです。

/* 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'"

// Create 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

ファイルの進行状況をdoリアルタイムでコンソールにパイプして、他の Python 出力と統合したいと考えています。

これは可能ですか?

4

1 に答える 1

2

コマンドを使用しlogて Stata セッションのコピーをファイルにエコーしたり、コマンドを使用fileして特定のメッセージ (「Data A Created」など) をテキスト ファイルに書き込むことができます。Pythonはそのようなファイルを表示できるはずですsubprocess.call(["tail", "-F", logfilename])

于 2013-11-05T21:12:04.147 に答える