2015-11-20 3 views
0

Я пытаюсь создать файл, но в другом каталоге. Например, когда мое приложение в /home/app1 Я хотел бы создать файл в /home/logsКак создать файл в другом каталоге

Я пытался что-то вроде этого:

json_file = "%s.json" % json_name 
    json_file_path = pathlib.Path("%s/%s" % (path, json_file)) 

    if not json_file_path.is_file(): 

     file = open(json_file_path, 'w+') 
     file.close() 
    else: 
     print("NotMkay") 

Где путь /home/logs, json_file это имя файла «example.json» и json_file_path это путь + json_file

Но все, что я получаю:

TypeError: invalid file: PosixPath 
+0

Что такое 'путь'? Что такое 'json_name'? Какова остальная часть трассировки стека для вашей ошибки? – Kevin

ответ

2
file = open(json_file_path, 'w+') 

Я не думаю, что вы можете передать объект Path в качестве аргумента для open. Вместо этого попробуйте

file = json_file_path.open('w+') 
0

Используйте os.path.join для соединения пути и os.path существует для проверки. Форматирование строк не является безопасным. Рабочий пример

import os.path 
json_file = "%s.json" % 'tst.json' 
json_file_path = os.path.join('~', json_file) 
print(os.path.exists(json_file_path)) 

Это будет печатать 'False'. Для создания dirtree вы можете использовать:

os.makedirs(json_file_path) 
Смежные вопросы