快捷方式文件的 FileNotFoundError

FileNotFoundError for shortcut files

我正在尝试练习项目,删除不需要的文件(章节:组织文件,页码:213),来自使用 python 自动化枯燥任务一书。完整的问题陈述是,

一些不需要但非常大的文件或文件夹占用硬盘驱动器的大部分 space 的情况并不少见。如果您要释放计算机上的空间,删除 most 大量不需要的文件,您将获得 most 的收益。但首先你得找到它们。

编写一个遍历文件夹树并搜索异常的程序 较大的文件或文件夹——例如,文件大小超过 100MB。 (请记住,要获取文件的大小,您可以使用 os.path.getsize() 来自 os 模块。)将这些文件及其绝对路径打印到屏幕。

这是我的代码,

#!/usr/bin/python
# A program to walk a path and print all the files name with size above 100MB

import os

pathInput = os.path.abspath(input('Enter the path for the directory to search '))

for folder, subFolders, files in os.walk(pathInput):
    for file in files:
        file = os.path.join(folder, file)
        if int(os.path.getsize(file)) > 100000000:
            print('File located, Name: {fileName}, Location: {path}'.format(fileName=file, path=folder))

但是对于某些文件,我得到 FileNotFoundError。所以,当尝试这个

#!/usr/bin/python
# A program to walk a path and print all the files name with size above 100MB

import os

pathInput = os.path.abspath(input('Enter the path for the directory to search '))

for folder, subFolders, files in os.walk(pathInput):
    for file in files:
        file = os.path.join(folder, file)
        try:
            if int(os.path.getsize(file)) > 100000000:
                print('File {fileName} located at {path}'.format(fileName=file, path=folder))
        except FileNotFoundError:
            print('FileNotFoundError: {}'.format(file))

我发现是大小为零字节的快捷方式文件导致错误。

那么,我该如何克服这个错误呢? python有没有功能是检查文件是否是快捷方式?

您可以使用 os.path.islink()

import os

pathInput = os.path.abspath(input('Enter the path for the directory to search '))

for folder, subFolders, files in os.walk(pathInput):
    for file in files:
        if not os.path.islink(file):
           # rest of code