Вам нужно сделать:
file = open(target, 'w')
потому что по умолчанию open
попытается открыть файл в режиме чтения (r
), но вам нужно открыть его в режиме w
(запись), если вы хотите, чтобы он был создан.
Кроме того, я бы не использовал имя переменной file
, так как это также тип (<type 'file'>
) в python.
Вы также можете добавить флаг режима записи к этой строке:
databases = json.load(open(os.path.join(root,'.extras.txt'), 'w'))
потому что из ограниченной информации, которую мы имеем в вопросе, похоже, ваш файл /.extras
ранее не существовал.
Последнее замечание: вы теряете дескриптор открытого файла в этой строке (поскольку вы не сохраняете его в переменной file
):
databases = json.load(open(os.path.join(root,'.extras.txt')))
Как вы собираетесь закрыть файл, когда закончите с ним?
Вы можете сделать это с помощью диспетчера контекста (python> = 2.6 или 2.5, если используется import with_statement
):
with open(os.path.join(root,'.extras.txt'), 'w') as f:
databases = json.load(f)
, который позаботится о закрытии файла для вас.