使用python运行不同的文件(stata、.stc等),就像在windows上运行.bat一样

使用python运行不同的文件(stata、.stc等),就像在windows上运行.bat一样,python,batch-file,subprocess,Python,Batch File,Subprocess,为了不让研究变得一团糟,作者们讨论了使用一个.py文件按顺序执行一个目录——也就是说,删除所有的输出文件(.pdf、.txt等),然后只运行.py文件,所有内容都将从原始数据、stata文件,可能还有其他.py文件等重新创建 在Python中实现这一点的最佳方法是什么?我知道一种选择是使用子流程,但这是唯一的选择吗?基本上,如何在Mac上使用Python最好地模拟.bat文件 您当然可以将Python用于shell脚本类型的东西,而且它还具有相对可移植性 你可以考虑的另一个选项是“BASH”(B

为了不让研究变得一团糟,作者们讨论了使用一个.py文件按顺序执行一个目录——也就是说,删除所有的输出文件(.pdf、.txt等),然后只运行.py文件,所有内容都将从原始数据、stata文件,可能还有其他.py文件等重新创建


在Python中实现这一点的最佳方法是什么?我知道一种选择是使用子流程,但这是唯一的选择吗?基本上,如何在Mac上使用Python最好地模拟.bat文件

您当然可以将Python用于shell脚本类型的东西,而且它还具有相对可移植性

你可以考虑的另一个选项是“BASH”(Burne Shell)。它将尽你所能。BAT文件(以及更多)。搜索BASH shell脚本。< /P>


Python或BASH是否是这项工作的合适工具,取决于您主要是在编写glue(调用一堆其他程序)还是自己在编写复杂的逻辑。如果是前者,那么我会选择BASH。

如果您在Mac上使用Terminal,您会(几乎可以肯定地)这样做将显示一个BASH提示符。使用
BASH
之后,如果没有安装Cygwin或其他附加组件,您将无法在Windows上运行某些东西。请坚持使用Python,并在任何地方运行相同的代码。@Paul-Windows通常也不会附带Python。在Windows上获得BASH的选项很多-Cygwin,MinGW、 win-bash(独立端口)。鉴于OP想要做源代码管理类型的工作,有可能他将使用GIT——在这种情况下,Windows安装程序将免费为您提供bash环境。