Python错误'整数是必需的'

时间:2017-01-30 14:36:48

标签: python-3.x

我正在使用以下代码

# simpleSerialSend.py
import sys
import serial
import time
PORT = 'COM4' # The port my Arduino is on, on my WinXP box.

def main(val=5):
    # Open a connection to the serial port.  This will reset the Arduino, and
    # make the LED flash once:
    ser = serial.Serial(PORT)

    # Must given Arduino time to rest.
    # Any time less than this does not seem to work...
    time.sleep(1.5)

    # Now we can start sending data to it:
    written = ser.write(val)
    ser.close()
    print ("Bytes Written to port:", written)
    print ("Value written to port: '%s'"%val)

if __name__ == '__main__':
    args = sys.argv
    try:
        main(args[1])
    except IndexError:
        main()

我对python有点新手。 所以我得到的错误就像在描述中所说的整数所需。 我使用以下规则在我的cmd中运行它:c:\ pyModules \ simpleSerialSend.py 5 只有我得到错误才能正常工作。代码的作用是将变量发送到我的arduino,以便灯闪烁。 arduino的代码是正确的。

1 个答案:

答案 0 :(得分:1)

论据以str的形式出现。因此,问题的解决方案实际上只是将字符串转换为int

main(int(args[1]))  # assuming args[1] is a parsable numeric string

另外,请查看argparse