如何在MacOS中从Python运行Stata dofile

2024-09-30 01:18:45 发布

您现在位置:Python中文网/ 问答频道 /正文

我是Python新手,正在尝试使用MacOS从Python执行Stata do文件

在这个问题上有以下建议:Run Stata do file from Python

我尝试了以下代码:

dofile = folder_path + "stata_dofile.do"
cmd = ["C:/Program Files (x86)/Stata14/StataSE-64", "do", dofile, variable1, variable2]
subprocess.call(cmd) 

其中,“dofile”是我想要执行的Stata-do文件,“variable1”和“variable2”是我想要提供给Stata的一些字符串变量

这段代码在Windows上运行良好。但当我尝试将其适应Mac时,如下所示:

dofile = folder_path + "stata_dofile.do"
cmd = ["/Applications/Stata/StataMP.app", "do", dofile, variable1, variable2]
subprocess.call(cmd) 

我收到一条错误消息“权限被拒绝”

根据这个论坛上的其他建议,我确实在Mac上用Python打开了Stata应用程序,代码如下:

cmd = ["/usr/bin/open", "/Applications/Stata/StataMP.app"]
subprocess.call(cmd)

但这只会打开Stata,我不知道如何修改代码使其执行上面的do文件

基本上我不知道我在做什么。如果有任何提示,我将不胜感激


Tags: 文件path代码cmdmacfoldercalldo
1条回答
网友
1楼 · 发布于 2024-09-30 01:18:45

我明白了

假设桌面上有一个test.do文件,如下所示:

sysuse auto, clear

fsum price mpg, s(mean median sd max min) f(%12.3f)

我们不应该使用StataSE.app,而是应该打开它的包内容:

import subprocess

cmd = ["/Applications/Stata/StataSE.app/Contents/MacOS/StataSE", "do", "/Users/apple/Desktop/test.do"]

subprocess.call(cmd) 

我希望这会有帮助

相关问题 更多 >

    热门问题