首页 > 解决方案 > 第 9 章用 python 自动化那些无聊的东西

问题描述

一直在使用这个隔离区来学习 Python,在我自己尝试这个并在网上查找信息之后,我不知道我的代码有什么问题,因为即使我在编译后没有错误,它也没有返回任何内容,只是空白结果。程序确实会在指定文件夹中查找超过 100Mb 的文件并返回这些文件的名称。

import os

folder = os.path.abspath(input('Please enter folder to search for files larger than 100MB:\n'))

def get_MB(value):
    MB = 1 * (10**6)
    my_MB = value * MB
    return my_MB

size_input = input('Enter your desired minimun MB: ')
my_min = get_MB(size_input)

for foldername, subfolders, filenames in os.walk(folder):
    for filename in filenames:
        file_path = os.path.join(os.path.abspath(foldername), filename)
        size = os.path.getsize(file_path)
        if size >= my_min:
            print(filename)

标签: python

解决方案


计算时将 size_input 转换为 int/float:

def get_MB(value):
    MB = 1 * (10**6)
    my_MB = int(value) * MB
    return my_MB

因为您的 get_mb 函数将值 10**6 次作为非常长的字符串返回,而不是 int 类型的值。所以typeError: '>=' not supported between instances of 'int' and 'str'


推荐阅读