如何在不同的目录中创建文件

时间:2015-11-20 14:03:03

标签: python python-3.x

我正在尝试创建一个文件,但是在不同的目录中。例如,当我的应用位于/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")

其中path为/home/logs,json_file为文件名“example.json”,json_file_path为path + json_file

但我得到的只是:

TypeError: invalid file: PosixPath

2 个答案:

答案 0 :(得分:2)

    file = open(json_file_path, 'w+')

我认为您不能将Path对象作为参数传递给open。相反,尝试

    file = json_file_path.open('w+')

答案 1 :(得分: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)