Как преобразовать пользовательский ввод в путь к файлу в Python - PullRequest
0 голосов
/ 15 сентября 2018

В настоящее время я пытаюсь получить file_path (предположим, ~ / hello_world /) в качестве пользовательского ввода и перечислить все файлы в этом каталоге. Я могу сделать то же самое, если передам ~ / hello_world в качестве sys.argv, однако, я не могу заставить его работать, если беру его в качестве входных данных. Я пытаюсь работать с кодом из любой директории, и введенный пользователем путь к файлу будет из / home / ubunut / ... Вот мой рабочий код как sys.argv:

Этот код предназначен только для ОС на базе Unix.

if len(sys.argv) == 2:
    path = sys.argv[1]

files = os.listdir(path)
for name in files:
    print(name)

Вот код, с которым я пытаюсь работать:

path = input("file_path: ")
files = os.listdir(path)
for name in files:
    print(name)

Это происходит при следующей ошибке:

Traceback (most recent call last):
  File "test.py", line 14, in <module>
    files = os.listdir(path)
FileNotFoundError: [Errno 2] No such file or directory: '~/hello_world/'

Заранее спасибо.

1 Ответ

0 голосов
/ 15 сентября 2018

Вам нужно расширить ~, как в ответе на этот вопрос

Следующее сработало для меня

import os

path = input("enter filepath: ")

for f in os.listdir(os.path.expanduser(path)):
    print(f)
...