2016-11-10 15 views
0

Итак, у меня есть сценарий python my_script.py, который находится внутри папки Test, и я за пределами этой папки. Сценарий требует доступа к некоторым входным данным из файла my_data.dat, хранящегося в папке Test.Запуск кодов python извне каталога, когда скрипт имеет пути к файлу

Теперь, когда я пытаюсь запустить этот сценарий из вне папки Test, используя простой python my_script.py, он пытается найти my_data.dat в папке, из которой я бегу сценарий и так терпит неудачу. Как я могу сказать, что он использует правильный путь, не изменяя путь в my_script.py?

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

ответ

1

Вам необходимо использовать абсолютный путь к файлу вместо относительного пути к файлу.

Чтобы получить абсолютный путь к папке, содержащей файл питона:

import os 
ROOT_DIR = os.path.dirname(__file__) 

И вы можете получить абсолютный путь my_data.dat

data_file_path = os.path.join(ROOT_DIR, 'my_data.dat') 

После использования data_file_path вместо "my_data.dat"

0

Вы можете передавать путь к my_data.dat в качестве параметра для скрипта или (если файл данных всегда i в той же директории, что и скрипт), вы можете использовать переменную __file__, чтобы определить, где находится скрипт, и искать файл данных в этом каталоге.