Python Version: Python 3.5.1nimmt Parser immer Argumente als Liste?
Django Version: Django 1.10.2
Ich versuche, meinen eigenen django benutzerdefinierten Befehl zu schreiben, und ich bemerkte, dass in einem Argumente zu nehmen, es endet immer als einen nach oben Liste.
Siehe https://docs.python.org/3/library/argparse.html
Beachten Sie, dass die Argumente für ganze Zahlen ist eine Liste von Integer.
Ich wollte ein Argument haben, das einen relativen Pfad oder absoluten Pfad zu einem Verzeichnis einbezieht, das im offensichtlich str-Format geschrieben ist.
Meine Frage ist:
- es sogar möglich, das Argument als einzelnes str Objekt für das Parser-Objekt nur zu akzeptieren?
- Wenn es möglich ist, was muss ich ändern?
Mein aktueller Code ist
def add_arguments(self, parser):
parser.add_argument('path', nargs='+', type=str)
# Named (optional) arguments
parser.add_argument(
'--whiteware',
action='store_true',
dest='whiteware',
default=True,
help='Affects whiteware variants only',
)
def handle(self, *args, **options):
directory_in_str = options['path']
print(directory_in_str)
lesen, was ist das Ziel? Können Sie ein Beispiel für eine gültige Eingabe und ein Beispiel für eine ungültige Eingabe als Teil der Frage anzeigen? Das 'nargs = '+'' ist das, was die Eingabe als String annimmt. Entfernen Sie das, und Sie sollten die Argumente als Zeichenfolge abrufen. – karthikr
@Exprator, wenn ich Ihren Kommentar downvote könnte ich. Ich erstelle bereits die benutzerdefinierte Befehlsdatei.Ich spreche speziell über das Parser-Objekt innerhalb der benutzerdefinierten Befehlsklasse –
Dank @ Carthikr Ihr Kommentar war die richtige Richtung, die ich brauchte. Vielen Dank. Fühlen Sie sich frei, eine Antwort zu erstellen, damit ich es als richtig markieren kann. –