列出上次为当前目录创建的日期

问题描述 投票:1回答:1

我之前从未编写过Python,并且有一项功课,我坚持不懈。这就是我需要做的。列出在给定文件夹中创建的所有文件名,大小和日期。过滤文件大小(你可以做=,>或<)取决于你或一个范围。该脚本应检查并验证文件夹名称和大小。脚本应循环,直到在所有子文件夹中找到大于指定大小的所有文件。

我已经能够得到一个文件列表和大小,但就是这样。

这就是我到目前为止所拥有的。

import os
Path = os.getcwd()
Files = list(os.listdir(Path))

Dict = dict()
for Allfiles in Files: 
    size = os.stat(Allfiles)
    Dict[Allfiles] = size

for item in Dict:
    print("{:30s} {:d} Bytes".format(item,Dict[item].st_size))
python python-3.x
1个回答
1
投票

我认为你应该记住以下事情。

  1. 您需要处理所有子目录。您可以使用递归或迭代方法执行此操作。我更喜欢第一个这样的东西:
def get_all_files(path_to_dir: str) -> dict:
    result = dict()
    for file_name in os.listdir(path_to_dir):
        full_path = os.path.join(path_to_dir, file_name)
        if os.path.isdir(full_path):
            result.update(get_all_files(full_path))
        else:
            result[full_path] = "<info-about-file>"
    return result

迭代看起来非常相似。

  1. 您需要获取有关特定文件的信息。 os.stat返回所有必要的数据:st_size的大小,st_ctime的创建时间以秒为单位。您可以使用datetime.datetime.fromtimestamp将秒转换为可读格式。
  2. 还需要用于尺寸比较的功能。例如。
def is_need_to_print_file(size: int, min_size: int=0, max_size: int=-1) -> bool:
    if size < min_size:
        return False
    if max_size != -1 and size > max_size:
        return False
    return True

如果min_size等于max_size,将检查确切的值。

  1. 函数os.path.exists提供了目录路径验证的功能。
© www.soinside.com 2019 - 2024. All rights reserved.