Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/323.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python程序生成文件名、扩展名、路径、创建时间和大小的字典,并将它们输出到json文件_Python_Dictionary_Path_Size_File Extension - Fatal编程技术网

Python程序生成文件名、扩展名、路径、创建时间和大小的字典,并将它们输出到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:

我想不出来。任何帮助都将不胜感激

我试图创建一个python文件来生成所需的结果,但我需要它们作为一个输出JSON文件

我希望结果作为files.JSON的输出,类似于以下结果,但包含该特定文件夹中的所有文件:

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)