Python 程序生成文件名、扩展名、路径、创建时间和大小的字典,并将它们输出到 json 文件

Python program to produce dictionary of file names, extensions, path, creation times, and sizes, and output them to a json file

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)

我想不通。任何帮助将不胜感激。

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

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

{
     "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
     }
}

解决方法:

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)