Python hilfe, cmd command

  • Hey Freunde, ich will ein eingebbares command für die cmd machen!
    Aus folgendem Code:

    Python
    import RPi.GPIO as GPIO
    from pizypwm import *
    
    
    pwm = PiZyPwm(100, 7, GPIO.BOARD)
    
    
    pwm.start(20)

    So das sollen jetzt Befehle in der cmd werden.
    Also z.B. "start-pwm 100(frequenz) 7(pin) 20(prozent)"

    Wie mache ich das ganze, das ich nacher sowas einfach in die cmd eingebe und das (^^) dann ausgeführt wird?

    Und pwm.stop() soll man auch als Befehl haben...

    Danke schonmal!

  • etwas verwirrend geschrieben :denker:

    du willst also wenn du z.b.

    Code
    python start_pwm.py -f 100 -p 7 -pr 20

    deine Argumente im code übernommen werden, richtig? dann ist argparse das was du suchst.

    [code=php]
    import argparse
    import RPi.GPIO as GPIO
    from pizypwm import *
    parser = argparse.ArgumentParser()
    parser.add_argument('-f','--frequenzy', help='Frequenzy', required=True)
    parser.add_argument('-p','--pin', help='Pin that u want to use', required=True)
    parser.add_argument('-pr','--procent', help='Procent', required=True)
    args = parser.parse_args()
    pwm = PiZyPwm(args.frequenzy, args.pin, GPIO.BOARD)
    pwm.start(args.procent)
    [/php]

    Ist jetzt aus dem Kopf geschrieben, könnte aber klappen ;)

    Der Unterschied zwischen Genie und Wahnsinn definiert sich im Erfolg.

    Edited once, last by dbv (October 23, 2013 at 6:38 PM).

  • Ich glaube er möchte einfach einen Befehl via CMD ausführen, dem er einige Parameter mitgeben kann.

    Eine Möglichkeit, die ich auf die Schnelle gefunden hab:
    Dafür musst du ein entsprechendes Skript schreiben, das in etwa so aussieht:

    Das speicherst du zum Beispiel unter pwm-start.py und machst es noch ausführbar mit

    Code
    chmod +x pwm-start.py


    Anschließend verschiebst du es in den Ordner /usr/bin.

    Jetzt kannst du es von überall mit dem folgenden Code ausführen:

    Code
    pwm-start.py [Frequenz] [Pin] [Prozent]


    Bitte beachte aber, dass dieses Skript sehr "klein" gehalten ist, also kein Fehler-Handling mit implementiert hat, wenn zum Beispiel ein Argument fehlt. ;)

    Man sollte nie schneller klicken, als man denken kann... :thumbs1:

    Edited once, last by Zoidberry (October 23, 2013 at 7:47 PM).

  • Und bevor man das Fehlerhandling selbst macht, sollte man sich argparse anschauen. Siehe oben. Ist ziemlich gut dokumentiert und leicht umzusetzen.

    Über direkten Zugriff auf die args ärgert man sich spätestens bei der ersten Erweiterung.

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!