草庐IT

GPIO中断

全部标签

python:如何中断正则表达式匹配

我遍历大量下载的文本文件中的行,并对每一行进行正则表达式匹配。通常,比赛时间不到一秒钟。然而,有时一场比赛需要几分钟,有时比赛根本没有结束,代码就挂了(等了几个小时,然后放弃了)。因此,我需要引入某种超时并以某种方式告诉正则表达式匹配代码在10秒左右后停止。我可以接受这样一个事实,即我将丢失正则表达式应该返回的数据。我尝试了以下操作(当然,这已经是一个代码示例中显示的2种不同的基于线程的解决方案):deftimeout_handler():print'timeout_handlercalled'if__name__=='__main__':timer_thread=Timer(8.0,

python - 使用子进程时处理键盘中断

我有一个名为monitiq_install.py的python脚本,它使用subprocesspython模块调用其他脚本(或模块)。但是,如果用户发送键盘中断(CTRL+C),它会退出,但会出现异常。我希望它退出,但很好。我的代码:importosimportsysfromosimportlistdirfromos.pathimportisfile,joinfromsubprocessimportPopen,PIPEimportjson#RunamoduleandcaptureoutputandexitcodedefrunModule(module):try:#RunModulepr

python - 中断并继续功能

deffuncA(i):ifi%3==0:print"Oh!No!",printibreakforiinrange(100):funcA(i)print"Pass",printi我知道上面的脚本不起作用。那么,如果我需要将带有break或continue的函数放入循环中,我该怎么写呢? 最佳答案 函数不能在调用它的代码中导致中断或继续。break/continue必须按字面意思出现在循环内。您的选择是:从funcA返回一个值并用它来决定是否中断在funcA中引发异常并在调用代码中捕获它(或调用链上游的某处)编写一个封装中断逻辑的生成

python - 值错误 : The channel sent is invalid on a Raspberry Pi - Controlling GPIO Pin 2 (BOARD) using Python causes Error

所以我有一个小风扇连接到引脚6(接地)和引脚2。我试图在需要时手动启动和停止风扇,但尝试时出现此错误:ValueError:发送的channel在RaspberryPi上无效这是我以root身份执行的代码。它似乎在其他引脚上工作,但在引脚2上不起作用importRPi.GPIOasGPIOGPIO.setmode(GPIO.BOARD)GPIO.setup(2,GPIO.OUT,pull_up_down=GPIO.PUD_UP)我不确定如何访问此pin。我做错了什么吗? 最佳答案 这可能是愚蠢的事情,我看起来完全一样。GPIO似乎有

python - 以编程方式中断 raw_input

有没有办法以编程方式中断Python的raw_input?具体来说,我想向用户提供一个提示,但也监听一个套接字描述符(例如使用select)并中断提示,输出一些东西,并在数据进入套接字时重新显示提示。使用raw_input而不是简单地在sys.stdin上进行选择的原因是我想使用readline模块为提示提供行编辑功能。 最佳答案 据我所知...“有点”。raw_input是阻塞的,所以我能想到的唯一方法是生成一个子进程/线程来检索输入,然后简单地与线程/子进程通信。这是一个非常肮脏的hack(至少在我看来是这样),但它应该跨平台工

python - 在 Pandas 中断言列数据类型

我试图找到一种更好的方法来断言给定数据帧的Python/Pandas中的列数据类型。例如:importpandasaspdt=pd.DataFrame({'a':[1,2,3],'b':[2,6,0.75],'c':['foo','bar','beer']})我想断言数据框中的特定列是数字的。这是我拥有的:numeric_cols=['a','b']#Thesewillbegivenassert[xin['int64','float']forxin[t[y].dtypeforyinnumeric_cols]]这最后一行断言感觉不是很pythonic。也许是这样,我只是把它全部塞进一行难

python - 如何覆盖键盘中断? (Python)

当脚本运行时按下Ctrl+c时,无论如何我可以让我的脚本执行我的功能之一吗? 最佳答案 看看signalhandlers.CTRL-C对应SIGINT(posix系统上的信号#2)。例子:#!/usr/bin/envpythonimportsignalimportsysdefsignal_handler(signal,frame):print("YoupressedCtrl+C-orkilledmewith-2")sys.exit(0)signal.signal(signal.SIGINT,signal_handler)print(

python - `pip freeze` 包安装中断

我正在使用dependency_links安装一个包。它似乎可以正常安装包,但会破坏pipfreeze功能(这可能意味着存在更深层次的安装问题。)我希望能够从自定义服务器下载包,而无需在运行setup.py之外进行任何设置。这是我的setup.py文件:fromsetuptoolsimportsetupsetup(name='package',version='0.1.0',packages=['foo','bar'],long_description='',url='https://github.com/myrepo',install_requires=['numpy>=1.9.2'

【STM32】GPIO_InitTypeDef GPIO_InitStructure;语句的理解

这句话声明一个结构体,名字是GPIO_InitStructure,结构体原型由GPIO_InitTypeDef确定,在stm32中用来初始化GPIO。设置完GPIO_InitStructure里面的内容后然后在GPIO_Init(GPIO_TypeDef*GPIOx,GPIO_InitTypeDef*GPIO_InitStruct)里面调用。但为什么GPIOx不需要取地址,但是GPIO_InitStructure为什么要用“&”取地址呢?GPIO.c源文件:voidGPIO_Init(GPIO_TypeDef*GPIOx,GPIO_InitTypeDef*GPIO_InitStruct){ u

【STM32】GPIO_InitTypeDef GPIO_InitStructure;语句的理解

这句话声明一个结构体,名字是GPIO_InitStructure,结构体原型由GPIO_InitTypeDef确定,在stm32中用来初始化GPIO。设置完GPIO_InitStructure里面的内容后然后在GPIO_Init(GPIO_TypeDef*GPIOx,GPIO_InitTypeDef*GPIO_InitStruct)里面调用。但为什么GPIOx不需要取地址,但是GPIO_InitStructure为什么要用“&”取地址呢?GPIO.c源文件:voidGPIO_Init(GPIO_TypeDef*GPIOx,GPIO_InitTypeDef*GPIO_InitStruct){ u