Я использую функцию для проверки правильности введенного пользователем каталога.Пользовательский ввод не идет к имени файла, он только идет к имени папки, например "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:>