Не удается найти файл views.py
Я столкнулся с очень странной проблемой.
У меня есть файл под названием: "test.txt".
Он находится в том же каталоге, что и views.py. Но я не могу его прочитать... FileNotFoundError.
Но если я создаю read_file.py в одной директории с views.py и test.txt, он работает абсолютно нормально.
Что не так с представлениями? Это какое-то ограничение со стороны Django?
Этот код работает на read_file, не работает на views.py:
fkey = open("test.txt", "rb")
key = fkey.read()
Я думаю, что проблема может заключаться в относительной и абсолютной работе с файлами. Используя следующий фрагмент Python, вы можете определить, где находится текущий рабочий каталог интерпретатора:
import os
print(os.getcwd())
Вы должны заметить, что он находится не в том же каталоге, что и views.py
, поскольку views.py
, вероятно, вызывается из другого модуля. Вы можете изменить все ваши вызовы open
, чтобы они включали весь путь к этим файлам, или использовать реализацию, подобную этой:
import os
# This function can be used as a replacement for `open`
# which will allow you to access files from the file.
def open_relative(path, flag="r"):
# This builds the relative path by joining the current directory
# plus the current filename being executed.
relative_path = os.path.join(os.path.dirname(__file__), path)
return open(relative_path, flag) # return file handler
Тогда это должно работать:
fkey = open_relative("test.txt", "rb")
key = fkey.read()
Надеюсь, это поможет!