Почему os.path.join не может справиться с форматом строки

1

Я хочу использовать os.path.join, чтобы собрать мой путь к файлу. Но тут есть некоторые проблемы. Пожалуйста, помогите мне.

print(sys.argv[1]) #print hw2
path = os.path.join(sys.argv[1], '{:s}.txt')
print(path) #print {:s}.txt

Почему результат не hw2/{: s}.txt? Я спросил других людей, и это может сработать для них. Моя версия Python 3.6.8.

  • 0
    Вам нужно поместить f перед строкой форматирования и использовать переменную или другое выражение внутри фигурных скобок.
  • 1
    Не могу воспроизвести; Я также получаю hw2/{:s}.txt .
Показать ещё 15 комментариев
Теги:

1 ответ

1

Может показаться, что os.path.join в Windows не очень требователен к тому, что он считает буквой диска. Initial {: заставляет второй аргумент обрабатываться как абсолютный путь на диске {, в результате чего первый аргумент игнорируется.

В качестве обходного пути укажите явный номер поля, чтобы отделить двоеточие от первого символа строки:

path = os.path.join(sys.argv[1], '{0:s}.txt')

Ещё вопросы

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