OSError:[Errno 20]不是目录,.DS_Store

时间:2017-07-14 03:05:44

标签: python hidden-files

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]不是目录:'/ Users / User / Desktop / DATA / book_group / .DS_Store / eye_tracker / paper'

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

任何想法如何处理它?<​​/ p>

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

对我来说,我已经在我的工作区中做到了,现在对我有用: 找 。 -名称“ * .DS_Store”-键入f-删除

链接:https://github.com/mapbox/robosat/issues/47

希望这会对您有所帮助。