文件处理之“自动创建文件”
-
情况一:用
with open() as f:
处理文件时,如果该文件不存在,创建新文件进行写入。 -
情况二:在pytorch中,用``torch.load()`从文件中加载一个用torch.save()保存的对象时,若该文件不存在,不会自动创建新文件进行写入。
我之前想将训练好的模型保存为.pkl文件,但是因为之前没有创建该文件,所以报错:
FileNotFoundError: [Errno 2] No such file or directory: 'xxx.pkl'
我原来的代码:
path_1 = '../saved_models/model1_.pkl' self.model1.load_state_dict(torch.load(path_1))
改后的代码:
def create_file(filename): """ 创建日志文件夹和日志文件 :param filename: :return: """ path = filename[0:filename.rfind("/")] if not os.path.isdir(path): # 无文件夹时创建 os.makedirs(path) if not os.path.isfile(filename): # 无文件时创建 fd = open(filename, mode="w", encoding="utf-8") fd.close() else: pass path_1 = '../screate_file(path_1)aved_models/model1_.pkl' # 检查是否存在该文件,若不存在就创建,若存在就pass create_file(path_1) self.model1.load_state_dict(torch.load(path_1))