You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

QNAP NAS幽灵文件夹致glob生成器抛出FileNotFoundError求助

背景
  • 编写Python脚本对齐QNAP NAS音乐库文件夹结构与MP3标签(文件夹和标签均需修复)
  • 父文件夹映射路径为/Volumes/Multimedia/Music/
  • 本地设备为MacBook
问题
  • QNAP NAS存在一个幽灵/损坏文件夹
  • 该文件夹持续出现在path.glob('*/*.mp3')的遍历结果中
  • 执行for fyl in path.glob('*/*.mp3'):时会抛出FileNotFoundError
已尝试方案
  1. 刷新Mac Finder缓存:重启Finder无效
  2. 从Mac端删除该文件夹:多种终端命令执行均失败,命令及结果如下:
% ls T2*
ls: T2Y97F~A: No such file or directory
% rm -rf "T2Y97F~A"
% ls T2*           
ls: T2Y97F~A: No such file or directory

% find . -type d -name T2*
./T2Y97F~A
% ls "./T2Y97F~A"
ls: ./T2Y97F~A: No such file or directory

% rm -rf "./T2Y97F~A"
% find . -type d -name T2*
./T2Y97F~A

% find . -type d -name T2Y97F* -exec rm -rf {} +
find: ./T2Y97F~A: No such file or directory
  1. 在Python中用try/except捕获错误:错误发生在glob迭代器本身,无法被捕获,代码及错误如下:
##
# glob returns a bad/ghost folder that isn't fully recognised
# FileNotFoundError escapes from except block
# continue doesn't seem to work

import os, csv, logging
from pathlib import Path, PurePosixPath

# Configure Logging
logging.basicConfig(
    level=logging.INFO,
    filename= '' + PurePosixPath(__file__).stem + '.log', 
    format='%(asctime)s\t|\t|\t%(levelname)s\t|\t%(message)s'
    )

ctr = 0

dirSrc = '/Volumes/Multimedia/Music/' # then /{artist}/
path = Path(dirSrc)

# Get any immediate children of /{artist}/
# glob is a generator
for fyl in path.glob('*/*.mp3'):

    # Stop after 50 whilst in dev/test
    ctr = ctr + 1
    if ctr >= 50:
        break

    try:
        logging.info('Handling {}'.format(str(fyl)))
    except FileNotFoundError as e:
        logging.exception('Problem handling {src} because {e}'.format(src = str(fyl), e = e))
        continue # Carry on with for...loop
    except OSError as e:
        logging.exception('Problem handling {src} because {e}'.format(src = str(fyl), e = e))
        continue # Carry on with for...loop
    except Exception as e:
        logging.exception('Problem handling {src} because {e}'.format(src = str(fyl), e=e))

执行代码后抛出错误:

% python3 ./ghostFolder.py
Traceback (most recent call last):
  File "/Users/john_skelton/Workspaces/mp3tagging/./ghostFolder.py", line 24, in <module>
    for fyl in path.glob('*/*.mp3'):
  File "/opt/homebrew/Cellar/python@3.10/3.10.9/Frameworks/Python.framework/Versions/3.10/lib/python3.10/pathlib.py", line 1034, in glob
    for p in selector.select_from(self):
  File "/opt/homebrew/Cellar/python@3.10/3.10.9/Frameworks/Python.framework/Versions/3.10/lib/python3.10/pathlib.py", line 457, in _select_from
    for p in self.successor._select_from(path, is_dir, exists, scandir):
  File "/opt/homebrew/Cellar/python@3.10/3.10.9/Frameworks/Python.framework/Versions/3.10/lib/python3.10/pathlib.py", line 440, in _select_from
    with scandir(parent_path) as scandir_it:
FileNotFoundError: [Errno 2] No such file or directory: '/Volumes/Multimedia/Music/T2Y97F~A'
请求帮助

希望实现以下任一或全部目标:

  • 删除该幽灵/损坏文件夹
  • 修改Python代码,使其在遇到单个文件/项失败时能继续迭代

内容的提问来源于stack exchange,提问作者JohnSk

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 17:45:28