 路径对象 `each` 是一个 `Path` 对象,来自 `pathlib.Path` 类。当你调用 `each.name` 时,实际上是调用了 `Path` 类的 `name` 属性。这个属性返回路径的最后一个组件,即文件名或目录名。因此没有报错。
顺便帮你把代码中遗漏的部分补充完整:
from pathlib import Path
from time import strftime, localtime
class File:
def __init__(self, name, size, folder, ctime, mtime, atime):
self.name = name
self.size = size
self.folder = folder
self.ctime = ctime
self.mtime = mtime
self.atime = atime
def get_name(self):
return self.name
def get_size(self):
return f"{self.size} 字节"
def get_folder(self):
return f"位置:{self.folder}"
def get_ctime(self):
return f"创建时间:{strftime('%Y-%m-%d %H:%M:%S', localtime(self.ctime))}"
def get_mtime(self):
return f"修改时间:{strftime('%Y-%m-%d %H:%M:%S', localtime(self.mtime))}"
def get_atime(self):
return f"访问时间:{strftime('%Y-%m-%d %H:%M:%S', localtime(self.atime))}"
def get_file_msg(path):
p = Path(path)
paths = [] # Initialize paths as a list
files = [] # Initialize files as a list
# 利用glob()函数找出指定路径下的所有文件
for each in p.glob("**/*"):
paths.append(each)
if each.is_file():
name = each.name
size = each.stat().st_size
folder = each.parent.resolve()
ctime = each.stat().st_ctime
mtime = each.stat().st_mtime
atime = each.stat().st_atime
files.append(File(name, size, folder, ctime, mtime, atime))
print("路径结构如下:")
for each in paths:
print(each)
return files
请注意,我已补充了 `paths` 和 `files` 列表的初始化。在最后打印了路径结构,并返回 `files` 列表。
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。 |