2016-10-19 3 views
1

Я начинаю с python, и я понятия не имею, похоже ли это что-то полезное.Выполнение кода на C++ из python

У меня есть простой цикл в python, который дает мне все файлы в текущем каталоге. То, что я хочу сделать, это выполнить C++ код, который я написал, прежде чем все эти файлы в каталоге, из питона

Предлагаемый цикл питон должен быть чем-то вроде этого

import os 
for filename in os.listdir(os.getcwd()): 
    print filename 
    (Execute the code.cpp on each file with each iteration) 

Есть ли шанс сделать это?

+4

Возможный дубликат [код выполнения C++ с python] (http://stackoverflow.com/questions/11113704/running-c-code-from-python) –

+0

Вы искали SO для своей темы? Есть несколько сообщений, в которых обсуждается выполнение кода C++ в python. Вот один. например http://stackoverflow.com/questions/11113704/running-c-code-from-python и –

+0

@Anil_M Спасибо за ссылку. Я искал связанные вопросы, но не нашел этого. Я читаю его сейчас и до сих пор не чувствую, что нашел и ответил на свой вопрос. – philippos

ответ

1

Несложно выполнить внешнюю программу из Python - независимо от языка:

import os 
import subprocess 

for filename in os.listdir(os.getcwd()): 
    print filename 
    proc = subprocess.Popen(["./myprog", filename]) 
    proc.wait() 

Список используется для аргументов конкретной платформы, но он должен работать нормально. Вы должны изменить "./myprog" на свою собственную программу (она не обязательно должна находиться в текущем каталоге, она будет использовать переменную среды PATH, чтобы ее найти).

+0

Большое спасибо за помощь. У меня есть 2 вопроса, если вы не возражаете. 1st, это ограничено окнами, я думаю? (потому что вы написали ./myprog) Во-вторых, я забыл упомянуть, что моя программа в дополнение к имени файла принимает еще 4 аргумента и делает некоторые вычисления на них. Итак, как я могу включить аргументы в этом случае? может быть что-то вроде proc = subprocess.Popen (["./ myprog", filename], arg1, arg2, ...)? – philippos

+1

Нет, это не Windows, какая ОС вы используете? Чтобы добавить другие аргументы, добавьте их в список: 'subprocess.Popen ([" ./ myprog ", filename, arg1, arg2], ...)'. Вместо этого вы можете уйти со строкой для списка аргументов, но обычно список проще. – cdarke

+0

Я просто попробовал это на MAC, и это сработало с аргументами, и все прошло хорошо! Спасибо большое! – philippos

Смежные вопросы