[python-win32] How to pass array from C to python function
Jens B. Jorgensen
jens.jorgensen@tallan.com
Thu, 19 Sep 2002 14:26:47 -0500
This is a cryptographically signed message in MIME format.
--------------ms060600010905070202000002
Content-Type: text/plain; charset=us-ascii; format=flowed
Content-Transfer-Encoding: 7bit
Why are you appending to your list after you already made it 5 elements
long? You are adding to the end of it by appending just as
<list>.append('something') adds a new element to the end of a list in
Python. What you want to be doing is PyList_SetItem rather than
PyList_Append.
Also, I haven't actually tried calling Python from C(++) though I've
written a number of Python extensions in C++. Do you really need to
Py_BuildValue to pass the list to the function? I think this is not
necessary. I believe in this case it actually will just return the
object you pass it. If you need it to create a tuple then put parens
around the "O".
Praveen Patil wrote:
>Hi ,
>
>I have problem in passing array to python function.
>Please help me passing array to python function.
>
>Here is my 'C' program
>-----------------------
>
>void RECEIVE_IL_STATE_S( int Instance , int vital_data[5])
>{
> PyObject*arglist;
> PyObject* ret;
> PyObject* mylist;
> int count;
>
> mylist = PyList_New(5);
> for (count=0; count< 5; count++) {
> myint = PyInt_FromLong(vital_data[count]);
> PyList_Append(mylist,myint);
> }
> arglist = Py_BuildValue("O", mylist);
> ret = PyEval_CallObject(my_callback , arglist);
> Py_DECREF(arglist);
> Py_DECREF(ret);
>}
>
>Here is my Python program
>-------------------------
>
>G_Logfile = None
>
>def TestFunction(a):
> G_Logfile = open('Pytestfile.txt', 'w')
> G_Logfile.write("%d \n"% a[0])
> G_Logfile.write("%d \n"% a[1])
> G_Logfile.close
>
>
>Cheers,
>
>Praveen.
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>[ The information contained in this e-mail is confidential and is intended for the named recipient only. If you are not the named recipient, please notify us by telephone on +44 (0)1249 442 430 immediately, destroy the message and delete it from your computer. Silver Software has taken every reasonable precaution to ensure that any attachment to this e-mail has been checked for viruses. However, we cannot accept liability for any damage sustained as a result of any such software viruses and advise you to carry out your own virus check before opening any attachment. Furthermore, we do not accept responsibility for any change made to this message after it was sent by the sender.]
>
>_______________________________________________
>Python-win32 mailing list
>Python-win32@python.org
>http://mail.python.org/mailman/listinfo/python-win32
>
>
--
Jens B. Jorgensen
jens.jorgensen@tallan.com
"With a focused commitment to our clients and our people, we deliver value through customized technology solutions"
--------------ms060600010905070202000002
Content-Type: application/x-pkcs7-signature; name="smime.p7s"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="smime.p7s"
Content-Description: S/MIME Cryptographic Signature
MIAGCSqGSIb3DQEHAqCAMIACAQExCzAJBgUrDgMCGgUAMIAGCSqGSIb3DQEHAQAAoIIJmjCC
AyswggKUoAMCAQICAwdmRzANBgkqhkiG9w0BAQQFADCBkjELMAkGA1UEBhMCWkExFTATBgNV
BAgTDFdlc3Rlcm4gQ2FwZTESMBAGA1UEBxMJQ2FwZSBUb3duMQ8wDQYDVQQKEwZUaGF3dGUx
HTAbBgNVBAsTFENlcnRpZmljYXRlIFNlcnZpY2VzMSgwJgYDVQQDEx9QZXJzb25hbCBGcmVl
bWFpbCBSU0EgMjAwMC44LjMwMB4XDTAyMDUwNjE0NDQ0MVoXDTAzMDUwNjE0NDQ0MVowZjES
MBAGA1UEBBMJSm9yZ2Vuc2VuMQ0wCwYDVQQqEwRKZW5zMRcwFQYDVQQDEw5KZW5zIEpvcmdl
bnNlbjEoMCYGCSqGSIb3DQEJARYZamVucy5qb3JnZW5zZW5AdGFsbGFuLmNvbTCCASIwDQYJ
KoZIhvcNAQEBBQADggEPADCCAQoCggEBALpRu41RjbKdgKkVQ4+0r38pZjxYFENSvBSQDup8
NBBC1Dj9oUkuEHuwJYg0jjYO4GdOT2QBhozGP+MUuxqYXQv2Kd0gP9lkSMhCkn+XggvEnWb/
nbs8J8bYV2Od5juy5i+qXvkyTJ1F7wRACInEMyHZIOR5/z0OPycnhxOxLpzHf0bqjJQj5GVj
vig+42VGFM3/p/pialli3DXQWJnkcFIy5sTZKK4ussztU1wBCXyMm0SdXjXTcxXjGnRRBO4D
j+ACe4jn6NsEMvJF+89iA8pyWNQQYch9QiC3gfwxtauUvJPFnPfmYAknQSMpgAuUl1ORUz6p
hHN/R143i5AIeIkCAwEAAaM2MDQwJAYDVR0RBB0wG4EZamVucy5qb3JnZW5zZW5AdGFsbGFu
LmNvbTAMBgNVHRMBAf8EAjAAMA0GCSqGSIb3DQEBBAUAA4GBAEEPvKr3A9pLwIHD08Jx+SzY
l3fWSOz92+hiHTIfgY0MkdPgzd59BylMiXcbsW0h/TGKpJgColgwsMvL8D5REMvtqlccPyRv
hOvP1Mi5mDt+9wJt2+Upd3sTp5KyxPSPVTRk4y43byrGDnEch0t2dD1Z5eaKSOrAc0InpUFo
F3sRMIIDKzCCApSgAwIBAgIDB2ZHMA0GCSqGSIb3DQEBBAUAMIGSMQswCQYDVQQGEwJaQTEV
MBMGA1UECBMMV2VzdGVybiBDYXBlMRIwEAYDVQQHEwlDYXBlIFRvd24xDzANBgNVBAoTBlRo
YXd0ZTEdMBsGA1UECxMUQ2VydGlmaWNhdGUgU2VydmljZXMxKDAmBgNVBAMTH1BlcnNvbmFs
IEZyZWVtYWlsIFJTQSAyMDAwLjguMzAwHhcNMDIwNTA2MTQ0NDQxWhcNMDMwNTA2MTQ0NDQx
WjBmMRIwEAYDVQQEEwlKb3JnZW5zZW4xDTALBgNVBCoTBEplbnMxFzAVBgNVBAMTDkplbnMg
Sm9yZ2Vuc2VuMSgwJgYJKoZIhvcNAQkBFhlqZW5zLmpvcmdlbnNlbkB0YWxsYW4uY29tMIIB
IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAulG7jVGNsp2AqRVDj7SvfylmPFgUQ1K8
FJAO6nw0EELUOP2hSS4Qe7AliDSONg7gZ05PZAGGjMY/4xS7GphdC/Yp3SA/2WRIyEKSf5eC
C8SdZv+duzwnxthXY53mO7LmL6pe+TJMnUXvBEAIicQzIdkg5Hn/PQ4/JyeHE7EunMd/RuqM
lCPkZWO+KD7jZUYUzf+n+mJqWWLcNdBYmeRwUjLmxNkori6yzO1TXAEJfIybRJ1eNdNzFeMa
dFEE7gOP4AJ7iOfo2wQy8kX7z2IDynJY1BBhyH1CILeB/DG1q5S8k8Wc9+ZgCSdBIymAC5SX
U5FTPqmEc39HXjeLkAh4iQIDAQABozYwNDAkBgNVHREEHTAbgRlqZW5zLmpvcmdlbnNlbkB0
YWxsYW4uY29tMAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQEEBQADgYEAQQ+8qvcD2kvAgcPT
wnH5LNiXd9ZI7P3b6GIdMh+BjQyR0+DN3n0HKUyJdxuxbSH9MYqkmAKiWDCwy8vwPlEQy+2q
Vxw/JG+E68/UyLmYO373Am3b5Sl3exOnkrLE9I9VNGTjLjdvKsYOcRyHS3Z0PVnl5opI6sBz
QielQWgXexEwggM4MIICoaADAgECAhBmRXK3zHT1z2N2RYTQLpEBMA0GCSqGSIb3DQEBBAUA
MIHRMQswCQYDVQQGEwJaQTEVMBMGA1UECBMMV2VzdGVybiBDYXBlMRIwEAYDVQQHEwlDYXBl
IFRvd24xGjAYBgNVBAoTEVRoYXd0ZSBDb25zdWx0aW5nMSgwJgYDVQQLEx9DZXJ0aWZpY2F0
aW9uIFNlcnZpY2VzIERpdmlzaW9uMSQwIgYDVQQDExtUaGF3dGUgUGVyc29uYWwgRnJlZW1h
aWwgQ0ExKzApBgkqhkiG9w0BCQEWHHBlcnNvbmFsLWZyZWVtYWlsQHRoYXd0ZS5jb20wHhcN
MDAwODMwMDAwMDAwWhcNMDQwODI3MjM1OTU5WjCBkjELMAkGA1UEBhMCWkExFTATBgNVBAgT
DFdlc3Rlcm4gQ2FwZTESMBAGA1UEBxMJQ2FwZSBUb3duMQ8wDQYDVQQKEwZUaGF3dGUxHTAb
BgNVBAsTFENlcnRpZmljYXRlIFNlcnZpY2VzMSgwJgYDVQQDEx9QZXJzb25hbCBGcmVlbWFp
bCBSU0EgMjAwMC44LjMwMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDeMzKmY8cJJUU+
0m54J2eBxdqIGYKXDuNEKYpjNSptcDz63K737nRvMLwzkH/5NHGgo22Y8cNPomXbDfpL8dbd
YaX5hc1VmjUanZJ1qCeu2HL5ugL217CR3hzpq+AYA6h8Q0JQUYeDPPA5tJtUihOH/7ObnUlm
AC0JieyUa+mhaQIDAQABo04wTDApBgNVHREEIjAgpB4wHDEaMBgGA1UEAxMRUHJpdmF0ZUxh
YmVsMS0yOTcwEgYDVR0TAQH/BAgwBgEB/wIBADALBgNVHQ8EBAMCAQYwDQYJKoZIhvcNAQEE
BQADgYEAMbFLR135AXHl9VNsXXnWPZjAJhNigSKnEvgilegbSbcnewQ5uvzm8iTrkfq97A0q
OPdQVahs9w2tTBu8A/S166JHn2yiDFiNMUIJEWywGmnRKxKyQF1q+XnQ6i4l3Yrk/NsNH50C
81rbyjz2ROomaYd/SJ7OpZ/nhNjJYmKtBcYxggMnMIIDIwIBATCBmjCBkjELMAkGA1UEBhMC
WkExFTATBgNVBAgTDFdlc3Rlcm4gQ2FwZTESMBAGA1UEBxMJQ2FwZSBUb3duMQ8wDQYDVQQK
EwZUaGF3dGUxHTAbBgNVBAsTFENlcnRpZmljYXRlIFNlcnZpY2VzMSgwJgYDVQQDEx9QZXJz
b25hbCBGcmVlbWFpbCBSU0EgMjAwMC44LjMwAgMHZkcwCQYFKw4DAhoFAKCCAWEwGAYJKoZI
hvcNAQkDMQsGCSqGSIb3DQEHATAcBgkqhkiG9w0BCQUxDxcNMDIwOTE5MTkyNjQ3WjAjBgkq
hkiG9w0BCQQxFgQULNL3yyM66UEVNnnGiyxf8Nqt7oswUgYJKoZIhvcNAQkPMUUwQzAKBggq
hkiG9w0DBzAOBggqhkiG9w0DAgICAIAwDQYIKoZIhvcNAwICAUAwBwYFKw4DAgcwDQYIKoZI
hvcNAwICASgwga0GCyqGSIb3DQEJEAILMYGdoIGaMIGSMQswCQYDVQQGEwJaQTEVMBMGA1UE
CBMMV2VzdGVybiBDYXBlMRIwEAYDVQQHEwlDYXBlIFRvd24xDzANBgNVBAoTBlRoYXd0ZTEd
MBsGA1UECxMUQ2VydGlmaWNhdGUgU2VydmljZXMxKDAmBgNVBAMTH1BlcnNvbmFsIEZyZWVt
YWlsIFJTQSAyMDAwLjguMzACAwdmRzANBgkqhkiG9w0BAQEFAASCAQB4mbitH0YVOx4Jf79y
fymDhUFEcL5nbgSb8gWi2xvVnTrOYFJe8feBirhk+iS8ajsgqjqToZNw4QqM3ivtnBtvL7Zb
fdGk5lEtkjpo/+YaCW00YOrQgFRbI9iUf/E3+GlvSKZ7PU2ySXTiqUWt5SXaLRWIPrBkvhdk
HvlGVD3RV/B6PSGREj/c9UCYFXliJrte27h4YLHlMc19yDyaoLof8NUgQu4KaREnCpI21fcn
zt6ZzZ5dzzPyRUBXjUzyg9kaGdW9JLIZBhcKVIZrLdAF0wBey+kdkAAabbDhbskTNTZ67efU
AE/9PkYXTFFSkxmL8Asxpb7tYosteH6lZ31sAAAAAAAA
--------------ms060600010905070202000002--