执行C++;来自python的代码
我是python的初学者,不知道这是否可行 我在python中有一个简单的循环,它提供了当前目录中的所有文件。 我想做的是,在Python 中执行我以前在目录中的所有文件中写的C++代码。 建议的python循环应该是这样的执行C++;来自python的代码,python,c++,file,directory,Python,C++,File,Directory,我是python的初学者,不知道这是否可行 我在python中有一个简单的循环,它提供了当前目录中的所有文件。 我想做的是,在Python 中执行我以前在目录中的所有文件中写的C++代码。 建议的python循环应该是这样的 import os for filename in os.listdir(os.getcwd()): print filename (Execute the code.cpp on each file with each iteration) 有机会这样做
import os
for filename in os.listdir(os.getcwd()):
print filename
(Execute the code.cpp on each file with each iteration)
有机会这样做吗 从Python执行外部程序相当容易-无论使用何种语言:
import os
import subprocess
for filename in os.listdir(os.getcwd()):
print filename
proc = subprocess.Popen(["./myprog", filename])
proc.wait()
用于参数的列表是特定于平台的,但应该可以正常工作。您应该将
“/myprog”
更改为您自己的程序(它不必位于当前目录中,它将使用PATH环境变量来查找它)。您在搜索主题时是否这样做过,是否可能重复?在Python中讨论C++代码执行的帖子很少。这里有一个。例如and@Anil_M谢谢你的链接。我确实搜索了相关问题,但没有找到。我现在正在读它,仍然感觉不到我发现和回答了我的问题。你的C++代码是在主程序还是作为共享对象/DLL?@ cDARKE它在一个主程序里,非常感谢你的帮助。如果你不介意的话,我还有两个问题。首先,我想这只限于windows?(因为你写了./myprog)第二,我忘了提到我的程序除了文件名之外还需要另外4个参数,并对它们进行一些计算。那么,在这个案例中,我如何包含这些论点呢?它可能是类似proc=subprocess.Popen([“/myprog”,filename],arg1,arg2,…)的东西吗?不,这不是特定于Windows的,您使用的是哪个操作系统?要添加其他参数,请将它们添加到列表中:subprocess.Popen([“/myprog”,文件名,arg1,arg2],…)
。你也许可以用一个字符串来代替参数列表,但通常列表更简单。我刚刚在MAC上试用过,它可以处理参数,一切都很好!谢谢!伟大的下次你在这里提问时,请记住我要问的问题。你提到C++让人们认为你想在同一进程中从Python调用C++。您可以使用pythonapi来实现这一点,尽管它比创建子进程要复杂得多。在这种情况下,语言实际上是不相关的。