-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathfilefinder.py
40 lines (26 loc) · 1.34 KB
/
filefinder.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
import os
from typing import Optional
def find_file(file_name: str) -> Optional[str]:
"""
Позволяет найти путь к файлу относительно проекта.
Вводный параметр:
- file_name: название файла, который хотим найти относительно проекта
Выводной параметр:
- путь к заданному файлу (в случае его наличия)
"""
search_path = os.path.dirname(os.path.abspath(__file__))
for dirpath, dirnames, filenames in os.walk(search_path):
if file_name in filenames:
return os.path.join(dirpath, file_name)
def find_folder(folder_name: str) -> Optional[str]:
"""
Позволяет найти путь к папке относительно проекта.
Вводный параметр:
- folder_name: название папки, которую хотим найти относительно проекта
Выводной параметр:
- путь к заданной папке (в случае его наличия)
"""
search_path = os.path.dirname(os.path.abspath(__file__))
for dirpath, dirnames, filenames in os.walk(search_path):
if folder_name in dirnames:
return os.path.join(dirpath, folder_name)