Skip to content

FileExistsError when saving data to existing directory outside current path #71

@gfbarbieri

Description

@gfbarbieri

I've encountered an issue with the save() method in the DataDict class, where it fails to properly handle saving data to a directory outside the current working directory. The result is FileExistsError because the folder data already exists one level above the program file location. Here is the code that caused the error:

results.save(exp_name='firm_dynamics', path=os.path.join('..','data'))

Looking into the .save() method, I believe the problematic code snippet is as follows:

# Create output directory if it doesn't exist
if path not in os.listdir():
    os.makedirs(path)

This logic checks if the path is in the current directory's listing (os.listdir()), leading to a FileExistsError when attempting to save data to an existing directory located outside the current directory, e.g., path='../'. A potential solution would be to directly check for the existence of the specified path and create it if it does not exist, avoiding the assumption that path should be within the current directory's listing:

if not os.path.exists(path):
    os.makedirs(path)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions