该代码仅在使用键盘中断时停止。

尽管我取出了它,但使用了一个中断,读取了adc数据,然后将spi.close与update_sheet(“ PCEM SHT.1”,ADCDATA)一起跳过了

我尝试使用其他异常,根据ADCDATA中的变量数量引发异常,但没有效果

# import many libraries
#!/usr/bin/python
# -*- coding: utf-8 -*-
from __future__ import print_function
from googleapiclient.discovery import build
from httplib2 import Http
from oauth2client import file, client, tools
from oauth2client.service_account import ServiceAccountCredentials
import datetime
import spidev # import the SPI driver


def read_mcp3002(channel):

### Working ADC Code

    return adc_data


def update_sheet(sheetname, my_list):

###Working Update google sheet code
try:
    while True:
        Result=1##3.23#for 3302 [mV]..... Voltage=(High Voltage-Low Voltage)/(2^(# of conversion bits))
        voltage1=(read_mcp3002(0))
        voltage1k=voltage1*Result
        voltage2=(read_mcp3002(1))
        voltage2k=voltage2*Result  # This one #


        ADCDATA += [[voltage1k, voltage2k]]

        if len(ADCDATA) == 100000:
            #print(ADCDATA)
            ADCDATA = []
            print("+10000")


except KeyboardInterrupt: # Ctrl-C
    spi.close()


def main():


    update_sheet("PCEM SHT.1", ADCDATA)


if __name__ == '__main__':
    main()


理想的结果是自动在len(ADCDATA)= 100000处停止:如果len(ADCDATA)== 100000,它将在If语句中运行代码,并执行spi.close()并最后通过def main( )的update_sheet(“ PCEM SHT1”,ADCDATA)。

最佳答案

我能够通过导入sys并将if len(ADCDATA)== 100000的&的底部放置系统出口(1)来解决我的问题

if len(ADCDATA)==100000


打印(“ PCEM DATA”)
   spi.close()
   update_sheet“ ........”)
   sys.exit(1)

关于python - 在变量达到len(ADCDATA)== 100000后通过def main函数运行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55583822/

10-08 20:29