1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
* Как можно передать аргумент (какую-то строку, значение) программе на языке Python.

**************** Один метод: используем метку переменной ********************.

* Для передачи аргумента в Питон, создадим переменную PythonArg

GET FILE='c:\\program files\\spss\\employee data.sav'.
NUMERIC PythonArg.
VARIABLE LABEL PythonArg "127; var1".

BEGIN PROGRAM python.
12
13
14
15
16
17
18
import spss
lastVar = spss.GetVariableCount() - 1
if spss.GetVariableName(lastVar) == "PythonArg":
	argument = "\\n***Питон получил следующий аргумент: " + spss.GetVariableLabel(lastVar) 
else:
	argument = "\\n***Питон аргументов не получил"
print argument
19
20
21
22
23
24
25
26
27
28
29
30
31
32
END PROGRAM.

EXECUTE.
DELETE VAR PythonArg.


**************** Альтернативный метод: используем текстовый файл  ********************.

* Примеч.: этот вариант кажется более универсальным.

GET FILE='c:\\program files\\spss\\employee data.sav'.
HOST COMMAND=['ECHO 127; var1 > c:\\temp\\PythonArg.txt'].

BEGIN PROGRAM python.
33
34
35
36
37
38
39
40
41
42
43
44
45
import spss, win32api
# модуль win32api устанавливается вместе с приложением pywin32
# Дистрибутив можно загрузить, например, с http://sourceforge.net/projects/pywin32 - примеч. перев.

try:
	f = open(r'c:\\temp\\PythonArg.txt')
	arguments = f.readline()
	f.close()
	win32api.DeleteFile(r'c:\\temp\\PythonArg.txt')
	print "\\n *** Питон получил следующий аргумент: " + arguments
except:
	print "\\n***Питон аргументов не получил"
print argument
46
47
48
END PROGRAM.

EXECUTE.