Почему os.path.isdir () или os.path.existis () всегда возвращают False - PullRequest
0 голосов
/ 23 марта 2019

Я использую функцию для проверки правильности введенного пользователем каталога.Пользовательский ввод не идет к имени файла, он только идет к имени папки, например "C:/Users/username/Desktop/folder".Поэтому я написал следующую функцию для получения пути / каталога:

def get_path():
     while True:
         file_path = input("Please enter file path (up to folder level); q to quit:> ")
         print(repr(file_path))
         if os.path.isdir(file_path):
             return file_path
         elif file_path.lower() == 'q':
             sys.exit()
         else:
             print("The path you entered is invalid.")
             continue

Однако, он всегда показывает The path you entered is invalid., хотя введенный мной путь / строка действительна при запуске os.path.isdir ()в cmd.

Запуск функции на моем Win10 cmd приводит к следующим результатам

>>> import sys
>>> import os
>>> import pathlib
>>> def get_path():
...      while True:
...          file_path = input("Please enter file path (up to folder level); q to quit:> ")
...          print(repr(file_path))
...          if os.path.isdir(file_path):
...              return file_path
...          elif file_path.lower() == 'q':
...              sys.exit()
...          else:
...              print("The path you entered is invalid.")
...              continue
...
>>> path = get_path()
Please enter file path (up to folder level); q to quit:> "C:/Users/myname/Desktop/"
'"C:/Users/myname/Desktop/"'
The path you entered is invalid.
Please enter file path (up to folder level); q to quit:> "C:/Users/myname/Desktop/randomprojects"
'"C:/Users/myname/Desktop/randomprojects"'
The path you entered is invalid.
Please enter file path (up to folder level); q to quit:>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...