Как обращаться к файлам в каталоге проекта? - PullRequest
1 голос
/ 14 мая 2019

У меня есть некоторые функции, хранящиеся в отдельном файле, они получают доступ к данным из файлов csv. В начале сценария я запускаю

current_dir = os.getcwd()

, а затем все имена файлов в формате:

file_name = current_dir + '\\data\\file.csv'

Работает хорошо, но только если функция вызывается из файла, который находится в главном каталоге проекта, в противном случае она не может найти каталог \data\

Я могу установить каталог:

 os.chdir('D:\\Projects\\Project\\data')

но я должен помнить, чтобы менять его вручную каждый раз, когда я перемещаю его на новую машину.

Как установить имя каталога так, чтобы проект можно было переносить на разные компьютеры / платформы и при этом можно было запускать и загружать файлы из директории Project/data/ независимо от того, где находится проект на диске

1 Ответ

2 голосов
/ 14 мая 2019

Насколько я понял, вы пытаетесь сослаться на некоторые файлы, которые находятся по некоторому пути в вашей файловой системе.

Я бы предложил вам разместить их все в корневом каталоге вашего проекта и ссылаться на них, используя относительный путь, как показано ниже.

import os
project_root_dir = os.path.dirname(os.path.abspath(__file__))
filepath = project_root_dir + name_of_the_file
#or
filepath = os.path.join(project_root_dir , name_of_the_file)

Или же вам нужно жестко закодировать его, что вызовет дальнейшие проблемы.

...