bin neu hier und habe bisher nur sehr wenig Python Kenntnisse, erst am Wochenende damit angefangen also sry für die Anfängerfragen.
Ich habe ein Skript welches ich von einem Programm aus Aufrufe. Das Programm hat früher Zahlenwerte als Integer übergeben also so wie ein Aufruf mit
Code: Alles auswählen
python ./script.py 100
Code: Alles auswählen
python ./script.py 100.0000000
Das Script sieht so aus:
Code: Alles auswählen
#!/usr/bin/env python
# encoding: utf-8
import sys
import getopt
import RepRapArduinoSerialSender
help_message = '''Help bla..'''
class Usage(Exception):
def __init__(self, msg):
self.msg = msg
def main(argv=None):
gotTemp = False
requestedTemp = 0
verbose = False
if argv is None:
argv = sys.argv
#Get value of P
if len(argv) > 1:
if argv[1].isdigit() == True:
requestedTemp = argv[1]
gotTemp = True
argv.remove(requestedTemp)
if gotTemp == False:
raise Usage(help_message)
opts, args = getopt.getopt(argv[1:], "ho:v", ["help", "output="])
# option processing
for option, value in opts:
if option == "-v":
verbose = True
if option in ("-h", "--help"):
raise Usage(help_message)
if verbose:
print >> sys.stdout, "Got Target Temperature of: " + requestedTemp
sender = RepRapArduinoSerialSender.RepRapArduinoSerialSender(verbose)
data = "M104 P" + requestedTemp
sender.writeToArduino(data)
return 0
if __name__ == "__main__":
sys.exit(main())
Eine Gerundete Zahl reicht aus, round() funktioniert aber nur bei Float Zahlen und argv[1] ist kein Float oder?
Danke schon mal