массив python argparse вместо str

1

У меня возникают проблемы при использовании argparse. С приведенным ниже кодом я ожидал, что args.dir будет строкой, но вместо этого я получил массив. Как я могу получить строку? Может ли кто-нибудь помочь?

#!/usr/bin/env python3

import sys
import argparse

#import mysql.connector

# Set version number
version = '1.0.0'

# Parse arguments supplied on the commandline
argparser = argparse.ArgumentParser(description=sys.argv[0])
argparser.add_argument('dir', nargs=1, type=str, help='directory to view')
args = argparser.parse_args()

# Print program name and version number to stdout
print(argparser.prog + " v" + version)
print('Creating index for: ' + args.dir[0])
  • 2
    Список, а не массив.
  • 0
    docs.python.org/3/library/argparse.html#nargs Обратите внимание, что nargs = 1 создает список из одного элемента. Это отличается от значения по умолчанию, при котором элемент создается сам по себе.
Теги:
argparse

1 ответ

3

Вы указали nargs=1 и хотя вы указали значение 1, argparse построил вам список (например, массив, но не совсем то же самое). Это действительно полезно, потому что вы можете гарантировать, что когда вы nargs, вы всегда получите список.

Удалите параметр nargs и вы получите строку, а не список.

  • 0
    Это сделал трюк! Благодарю. Также спасибо за предоставленную дополнительную информацию о массиве против списка.
  • 0
    @NielsJansen Привет, стоит принять это, если он ответил на ваш вопрос, чтобы помочь будущим читателям.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню