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