How to open a file in the parent directory in python in AppEngine?
The open
function operates relative to the current process working directory, not the module it is called from. If the path must be module-relative, do this:
import os.path
f = open(os.path.dirname(__file__) + '/../data.yml')
Having encountered this question and not being satisfied with the answer, I ran across a different solution. It took the following to get what I wanted.
Determine the current directory using
os.path.dirname
:current_directory = os.path.dirname(__file__)
Determine the parent directory using
os.path.split
:parent_directory = os.path.split(current_directory)[0] # Repeat as needed
Join parent_directory with any sub-directories:
file_path = os.path.join(parent_directory, 'path', 'to', 'file')
Open the file:
open(file_path)
Combined together:
open(os.path.join(os.path.split(os.path.dirname(__file__))[0], 'path', 'to', 'file')