我想重新命名报表.json但它正在删除文件
import os
from pathlib import Path
import json
path =Path( r'C:\Users\Sajid\Desktop\cuckoo (3)\cuckoo\storage\analyses\3\reports')
filename = os.path.join(path,"report.json")
with open(filename) as json_file:
data=json.load(json_file)
var=(data['target']['file']['md5'])
print(var)
json_file.close()
os.rename(filename,var)
我希望这段代码重命名文件,而不是删除它
它可能不是删除它,而是将它移动到您的工作目录中(因此,如果您从
C:\Users\Sajid
启动脚本,则文件将在那里,而不是在C:\Users\Sajid\Desktop\cuckoo (3)\cuckoo\storage\analyses\3\reports
)。编辑:基于your comment,这肯定是正在发生的事情;第一次运行代码时,它将代码移到工作目录(使用组件cuckoo (1)
,您可能希望它移到使用组件cuckoo (3)
的目录),第二次失败是因为os.rename
不会覆盖Windows上的现有文件。你知道吗将其更改为将所需的目标目录与文件的基本名称(la:
所以它保持在同一个目录中。你知道吗
您还不必要地关闭了文件两次(一次显式关闭,一次通过
with
块终止隐式关闭)。碰巧,第一个是必需的,但这只是因为您将rename
放在了with
块中。最简单的解决方案是只删除close
块之外的rename
(实际上,您不需要在json.load
之后打开它,因此您也可以关闭它):如前所述,您不会替换现有文件(在Windows上;在类似UNIX的系统上,它会);如果您想无提示地到处替换现有文件,请使用
os.replace
而不是os.rename
。你知道吗相关问题 更多 >
编程相关推荐