如何检查存档在python中只有一个文件夹?

时间:2016-02-19 23:04:12

标签: python django zip archive tar

我正在尝试上传文件(可以是tar,tar.gz,bz2或zip之一),在上传之前,我想检查tar(或任何压缩格式)的内容是否只有文件夹在顶部,其名称与变量&name;#39;。

的名称相同

在我的代码中,我可以上传文件,但我无法检查上述情况。请注意,代码中的getnames()不起作用。我们如何检查顶部只有一个具有给定名称的文件夹?

请注意,文件夹中可能没有文件。文件夹可能为空。

这是伪代码:

with Archive(fileobj=data['zxc']) as archive:
    if archive.is_archive():
       count=0
       nam=""
       for a in (get names of folders at the top):
           nam=""
           count+=1
           if count!=1:
               print "error"
           elif nam!=name:
               print "error2"
           else:
               print "correct"

1 个答案:

答案 0 :(得分:0)

文档让我相信这是你的追索权,但我不认为' zxc' django中的归档类支持文件。

def has_leading_dir(self, paths):
    """
    Returns true if all the paths have the same leading path name
    (i.e., everything is in one subdirectory in an archive)
    """
    common_prefix = None
    for path in paths:
        prefix, rest = self.split_leading_dir(path)
        if not prefix:
            return False
        elif common_prefix is None:
            common_prefix = prefix
        elif prefix != common_prefix:
            return False
    return True