2015-11-20 29 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

什么是'path'?什么是'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)) 

这将打印 '假'。 创建dirtree可以使用:

os.makedirs(json_file_path) 
相关问题