OSError: [Errno 20] Not a directory, .DS_Store

OSError: [Errno 20] Not a directory, .DS_Store

BASE_FOLDER = "/Users/User/Desktop/DATA"
BOOK_GROUP_FOLDER = os.path.join(BASE_FOLDER, "book_group")
SCREEN_GROUP_FOLDER = os.path.join(BASE_FOLDER, "screen_group")
hidden_file = ("/Users/User/Desktop/DATA/book_group/.DS_Store")

def listdir_ignorehidden(path): #Ignore HiddenFiles
    for f in os.listdir(hidden_file):
        if not f.startswith ('.') and os.path.isfile(os.path.join(hidden_file , f)):
            yield f

def get_person_folder_reading(persons_folder, screen_type):
    base_folder = os.path.join(persons_folder, screen_type)
    return [os.path.join(base_folder, fn) for fn in os.listdir(base_folder) if fn not in ["test", ".Data", "._.Data"]][0]

OSError: [Errno 20] Not a directory: '/Users/User/Desktop/DATA/book_group/.DS_Store/eye_tracker/paper'

我正在尝试从不同目录读取多个文件。但是我得到一个错误,似乎是由 mac 的 .DS_Store 引起的。我定义了一个应该忽略它的函数,但它没有帮助。

有什么处理方法吗?

.DS_STORE 没有问题,这是因为您假设目录中的所有条目都是一个目录。你应该在 运行 listdir() 之前检查一个条目是否是一个目录

对我来说,我已经在我的工作区中完成了这个,现在它对我有用了: 寻找 。 -name "*.DS_Store" -type f -delete

link:https://github.com/mapbox/robosat/issues/47

希望对您有所帮助。