Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/128.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
执行C++;来自python的代码_Python_C++_File_Directory - Fatal编程技术网

执行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) 有机会这样做

我是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)

有机会这样做吗

从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来实现这一点,尽管它比创建子进程要复杂得多。在这种情况下,语言实际上是不相关的。