【Python -- dict 类】教程文章相关的互联网学习教程文章

将str作为int数组传递给Python C扩展函数(使用SWIG扩展)【代码】

如何将使用python代码获得的str值(包含3000 {‘0′,’1’}字节)作为参数传递给python c扩展函数(使用SWIG扩展),这需要int *(固定长度int数组)as输入参数?我的代码是这样的:int *exposekey(int *bits) {int a[1000];for (int j=2000; j < 3000; j++) {a[j - 2000] = bits[j];}return a; }我试过的是使用ctypes(见下面的代码):import ctypes ldpc = ctypes.cdll.LoadLibrary('./_ldpc.so') arr = (ctypes.c_int * 3072)(<mentione...

python – 为什么没有捕获CTRL-C并调用signal_handler?【代码】

我有以下捕获Ctrl C的标准实现:def signal_handler(signal, frame):status = server.stop()print("[{source}] Server Status: {status}".format(source=__name__.upper(),status=status))print("Exiting ...")sys.exit(0)signal.signal(signal.SIGINT, signal_handler)在server.start()上,我启动了CherryPy的线程化实例.我创建了一个线程,认为可能是因为CherryPy正在运行,主线程没有看到Ctrl C.这似乎没有任何影响,但发布代码,因为...

python – PyGaze的替代品(Tobii 4C)

我曾经与眼动仪Tobii Pro合作,并使用PyGaze编写了一个Python脚本.我最近不得不更换跟踪器并获得了Tobii 4C,这似乎与PyGaze库不兼容. 我在互联网上搜索了几个小时,但我找不到PyGaze的替代品.你知道我可以使用的库/ API / …吗? (Python不是义务) 提前致谢.解决方法:您可以看到他们的产品on their website的各种可用SDK.显然,您有不少于三个: > Core SDK,用于一般交互式使用,主要在C#中,尽管它提供了C#和C/C++中的低级API.> Gaming...

通过Ctypes将C转换为Python – 将函数指针的结构包含到静态函数中【代码】

我在C库中的结构是这样的.DataFn中的函数指针指向静态函数. .Hstruct Data {int i;int *array; };typedef struct {bool (* const fn1) (struct Data*, const char *source);.... } DataFn; extern DataFn const DATAFUNC使用objdump,该表仅包含DATAFUNC和gcc中的一些其他内容. 这在C中很好,其中调用fn1就像DATAFUNC.fn1(…,…),但是这样的东西怎么会被包裹起来所以fn1可以用python w / ctypes调用? 示例pythonlibc = ctypes.cdll....

python – C中的一个足够大的problemSize需要0运行时间【代码】

这段代码用于演示算法的复杂性和测量算法的运行时间来自一本书FUNDAMENTALS OF PYTHON: FROM FIRST PROGRAMS THROUGH DATA STRUCTURES""" File: timing1.py Prints the running times for problem sizes that double, using a single loop. """import timeproblemSize = 10000000 print "%12s%16s" % ("Problem Size", "Seconds") for count in xrange(5):start = time.time()# The start of the algorithmwork = 1for x in xrange...

C dll从Python调用【代码】

我使用过MFC的C dll,我想从python中调用它.此dll在.h文件中包含此标头LONG CommOpen(BYTE port, LONG baud_rate);然后我在自由软件dllexp中看到我的函数被调用了?CommOpen @ CFIPcmd @@ QAEJEJ @ Z在二进制文件中因此我在python中没有报告错误import ctypeslib = ctypes.WinDLL('C:\\Users\\toto\\FIProtocol.dll') prototype = WINFUNCTYPE(c_long, c_byte, c_long) testPt = ctypes.WINFUNCTYPE (prototype) testApi = testPt ...

c – SWIG如何用Python包装地图?【代码】

我正在使用SWIG 2.0为C库创建一个Python包装器.一种方法的参数类型为“const std :: map&”. SWIG很高兴为它生成一个包装器,但我无法弄清楚如何调用该方法.例如,如果我为该参数传递{“a”:“b”},则会出现“NotImplementedError:重载函数的错误数字或参数类型”错误. 我查看生成的.cxx文件,希望它能澄清,但事实并非如此.这是处理该参数的代码:res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_std__mapT_std__string_std__stri...

c – Boost包装虚拟方法的python【代码】

我正在使用boost python来创建与c库的绑定.该库中的许多类都有虚方法,它们接受iterator / const_iterator类型作为参数.我并不特别希望公开这些类型,但更愿意围绕这些接受适当容器的虚拟方法创建一些包装器.我的问题是,在“默认实现”功能中进行此包装是否安全? 例如class Test { public:Test();virtual ~Test();virtual void iterate(std::vector<int>::iterator it); };然后用包装类包装默认..struct Test_wrapper: Test, boost:...

在C中嵌入Python并从C代码调用方法【代码】

我尝试将Python脚本嵌入到我的C程序中.在阅读了有关嵌入和扩展的一些内容之后,我了解了如何打开自己的python脚本以及如何将一些整数传递给它.但现在我有点不明白如何解决我的问题.我必须做两件事,从C调用Python函数并从我的嵌入式Python脚本调用C函数.但我不知道从哪里开始.我知道我必须编译一个.so文件来将我的C函数暴露给Python,但这不是我能做的,因为我必须嵌入我的Python文件并使用C代码控制它(我必须用一个扩展一个大的软件脚...

c – 为什么Python / C API在PyRun_SimpleFile上崩溃?【代码】

我一直在尝试在C应用程序中嵌入不同的脚本语言,目前我正在尝试Stackless Python 3.1.我已经尝试了几个教程和示例,我可以找到的很少,尝试从应用程序运行一个简单的脚本.Py_Initialize();FILE* PythonScriptFile = fopen("Python Scripts/Test.py", "r"); if(PythonScriptFile) {PyRun_SimpleFile(PythonScriptFile, "Python Scripts/Test.py");fclose(PythonScriptFile); }Py_Finalize();出于某些奇怪的原因,运行此代码会导致访问冲...

如何使用纯Python扩展API(python3)包装C对象?【代码】

我想知道如何在没有外部工具(如Cython,Boost,SWIG,…)的情况下用Python Extension API(和distutils)包装C对象.只是用纯Python方式而不创建一个DLL. 请注意,我的C对象具有内存分配,因此必须调用析构函数以避免内存泄漏.#include "Voice.h"namespace transformation { Voice::Voice(int fftSize) { mem=new double[fftSize]; } Voice::~Voice() { delete [] mem; } int Voice::method1() { /*do stuff*/ return (1); } }我只想在Pyt...

Ctrl-C即KeyboardInterrupt在Python中杀死线程【代码】

我在某处读到只在Python的主线程中引发KeyboardInterrupt异常.我还读到在子线程执行时主线程被阻塞.那么,这是否意味着CTRL C永远不会到达子线程.我尝试了以下代码:def main():try:thread = threading.Thread(target=f)thread.start() # thread is totally blocking (e.g., while True)thread.join()except KeyboardInterrupt:print "Ctrl+C pressed..."sys.exit(1)def f():while True:pass # do the actual work在这种情况下,CT...

类似Python的C装饰器【代码】

有没有办法在C语言中装饰C语言中的函数或方法?@decorator def decorated(self, *args, **kwargs):pass以宏为例:DECORATE(decorator_method) int decorated(int a, float b = 0) {return 0; }要么DECORATOR_MACRO void decorated(mytype& a, mytype2* b) { }可能吗?解决方法:std::function为我提出的解决方案提供了大部分构建块. 这是我提出的解决方案.#include <iostream> #include <functional>//----------------------------...

python – 使用现有C对象初始化Cython对象【代码】

C模型 假设我有以下C数据结构,我希望向Python公开.#include <memory> #include <vector>struct mystruct {int a, b, c, d, e, f, g, h, i, j, k, l, m; };typedef std::vector<std::shared_ptr<mystruct>> mystruct_list;提升Python 我可以使用boost :: python使用以下代码相当有效地包装它们,轻松地允许我使用现有的mystruct(复制shared_ptr)而不是重新创建现有对象.#include "mystruct.h" #include <boost/python.hpp>using name...

Python:如何使用Paramiko远程从本地PC到remoteA到remoteb到远程c【代码】

我想知道如何使用paramiko从一个远程服务器跳转到另一个远程服务器.我想从我的本地电脑ssh到远程A,然后从远程-A到远程-B,从远程-B到远程-C.import paramiko def connect(ip, usr, psw):client = paramiko.SSHClient()client.load_host_keys('/home/dgomez/.ssh/known_hosts')client.connect(ip, username=usr, password=psw)return clienthost1 = connect('192.168.1.2', 'username', 'password') # Here I'm connect to remote-A现...