Python, sqlite3: запрашивать пользователя для пути к файлу без необходимости набирать весь путь

75
6

Я очень новичок в python, но я попытался создать небольшую программу, которая импортирует CSV в базу данных sqlite3 и сопоставляет значения столбцов с именами pdf файлов - создавая папки и заполняя их с помощью pdf файлов.

В настоящее время я использую

real_file_path = '/'.join(__file__.split('/')[:-1])

получить каталог, в котором существует исполняемый файл, и использовать real_file_path + "определенное имя файла" для импорта моего CSV и найти мою папку с pdf файлами, которые находятся в той же папке, что и исполняемый файл.

См. Пример

new_map_path = real_file_path + "/New_map"

real_file_path + '/Db_CSVinput/mapsCSV.csv'

Есть ли способ предложить пользователю путь для файла CSV и папки с помощью pdf файлов, без наличия у них типа во всем пути?

спросил(а) 2021-01-28T00:01:01+03:00 2 месяца, 2 недели назад
1
Решение
87

Вы можете использовать pathlib если используете Python 3. 4+:

from pathlib import Path

csv = input('Please enter a csv filename: ') # some_file.csv
pdf = input('Please enter pdf directory: ') # some_directory

csv_file = next(Path('.').glob(f'**/{csv}')) # Returns generator
pdf_path = next(Path('.').glob(f'**/{pdf}')) # Returns generator

Вот документация для библиотеки, pathlib.

Вы также можете использовать pathlib.Path.resolve(), однако у меня были некоторые проблемы с этим, поэтому я использую реализацию в представленном коде.

ответил(а) 2021-01-28T00:01:01+03:00 2 месяца, 2 недели назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема