Python程序生成文件名、扩展名、路径、创建时间和大小的字典,并将它们输出到json文件
我想不出来。任何帮助都将不胜感激 我试图创建一个python文件来生成所需的结果,但我需要它们作为一个输出JSON文件 我希望结果作为files.JSON的输出,类似于以下结果,但包含该特定文件夹中的所有文件:Python程序生成文件名、扩展名、路径、创建时间和大小的字典,并将它们输出到json文件,python,dictionary,path,size,file-extension,Python,Dictionary,Path,Size,File Extension,我想不出来。任何帮助都将不胜感激 我试图创建一个python文件来生成所需的结果,但我需要它们作为一个输出JSON文件 我希望结果作为files.JSON的输出,类似于以下结果,但包含该特定文件夹中的所有文件: import os, json, time path = "C:\\Users\\Marius\\Desktop\\homework" #se defineste adresa with os.scandir(path) as listOfEntries:
import os, json, time
path = "C:\\Users\\Marius\\Desktop\\homework" #se defineste adresa
with os.scandir(path) as listOfEntries:
for item in listOfEntries:
data={}
if item.is_file():
filename_ext=os.path.splitext(item)
size=(os.path.getsize(item))
creation=(time.ctime(os.path.getctime(item)))
extension=(os.path.splitext(os.path.basename(item))[1])
if filename_ext not in data:
data[item.path] = {'name': item.name, 'path': path, 'extension': extension, 'creation': creation, 'size': size}
print(data)
j_data = json.dumps(data, indent=4)
with open('files.json', 'w') as f:
json.dump(data, f, indent=4)
解决方法:
{
"C:\\Users\\Marius\\Desktop\\homework\\test.py": {
"name": "test.py",
"path": "C:\\Users\\Marius\\Desktop\\homework",
"extension": ".py",
"creation": "Sat Dec 26 08:39:59 2020",
"size": 733
}
}
您当前的代码产生了什么,有什么问题吗?还请解释您希望在问题中以文本形式生成的内容,即不作为链接。请说明您做了哪些调试工作?您正在将列表保存到
数据[item.path]
键中,您应该改为保存dict。将data[item.path]=[item.name,extension,path,size]
更改为data[item.path]={'name':item.name,'extension':extension,'path':path,'size}
。我不是脾气暴躁,我希望能帮助你。我提供的链接解释了以图像形式发布文本的一些问题;最重要的可能是,你要求访问者点击图片以查看你的问题,这是许多潜在的回答者都不愿意做的,尤其是当他们可以预期需要重新键入图片中的任何内容时,如果他们想搜索图片或试着运行代码。你为什么要使用上下文管理器(一个带有语句的围绕着os.scandir()
?这显然很奇怪,如果这样做不符合您的期望,我也不会感到惊讶。再说一次,您做了什么来调试它?
import os, json, time
path = "C:\\Users\\Marius\\Desktop\\homework"
data={}
with os.scandir(path) as listOfEntries:
for item in listOfEntries:
filename_ext=os.path.splitext(item)
size=(os.path.getsize(item))
creation=(time.ctime(os.path.getctime(item)))
extension=(os.path.splitext(os.path.basename(item))[1])
if item.is_file():
if filename_ext not in data:
data[item.path] = {'name': item.name, 'path': path, 'extension': extension, 'creation': creation, 'size': size}
print(data)
j_data = json.dumps(data, indent=4)
with open('files.json', 'w') as f:
json.dump(data, f, indent=4)