ОП упоминает функцию map
в Python. Эта функция фактически применяет функцию к каждому элементу списка (или повторяемого) и возвращает список (или повторяемый), который собирает все результаты. Другими словами, он делает что-то вроде этого:
def f( x ) :
""" a function that computes something with x"""
# code here
return y
input = [ x1, x2, x3, ... ]
output = map( func, input )
# output is now [ f(x1), f(x2), f(x3), ...]
Следовательно, ближайшая стандартная библиотека C ++, эквивалентная карте Python, на самом деле std::transform
(из заголовка). 117]
Пример использования выглядит следующим образом:
#include
#include
using namespace std;
double f( int x ) {
// a function that computes the square of x divided by 2.0
return x * x / 2.0 ;
}
int main( ) {
vector input{ 1, 5, 10 , 20};
vector output;
output.resize( input.size() ); // unfortunately this is necessary
std::transform( input.begin(), input.end(), output.begin(), f );
// output now contains { f(1), f(5), f(10), f(20) }
// = { 0.5, 12.5, 50.0, 200.0 }
return 0;
}
Только что найдено sys.executable
- полный путь к текущему исполняемому файлу Python, который можно использовать для запуска сценария (вместо использования команды shbang, которая, очевидно, не не работает в Windows)
import sys
import subprocess
theproc = subprocess.Popen([sys.executable, "myscript.py"])
theproc.communicate()
Похоже, Windows пытается запустить скрипт, используя свою собственную среду EXE, а не называть его как
python /the/script.py
Попробуйте,
subprocess.Popen(["python", "/the/script.py"])
Изменить: "python" должен быть на вашем пути.
Когда вы запускаете скрипт python в Windows в подпроцессе, вы должны использовать python перед именем скрипта. Попробуйте:
process = subprocess.Popen("python /the/script.py")
Вы используете разделитель путей, который зависит от платформы. Windows использует "\", а Unix использует "/".
Как насчет этого:
import sys
import subprocess
theproc = subprocess.Popen("myscript.py", shell = True)
theproc.communicate() # ^^^^^^^^^^^^
Это говорит подпроцессу
использовать оболочку ОС для открытия вашего скрипта и работает со всем, что вы можете просто запустить в cmd.exe.
Кроме того, в PATH будет выполняться поиск «myscript.py», что может быть желательно.