Можно получить доступ к заключительным локальным переменным и параметрам в блоках инициализации и методах локальных классов. Рассмотрите это:
final String foo = "42";
new Thread() {
public void run() {
dowhatever(foo);
}
}.start();
Немного как закрытие, не так ли?
subprocess.Popen
принимает аргумент cwd
для установки текущего рабочего каталога; вы также захотите убрать обратную косую черту ( 'd: \\ test \\ local'
) или использовать r'd: \ test \ local '
, чтобы обратная косая черта была 't интерпретируется Python как escape-последовательности. Как вы написали, часть \ t
будет переведена на вкладку .
Итак, ваша новая строка должна выглядеть так:
subprocess.Popen(r'c:\mytool\tool.exe', cwd=r'd:\test\local')
Для использования вашего скрипта Python путь как cwd, import os
и определите cwd, используя это:
os.path.dirname(os.path.realpath(__file__))