创建文件列表并分隔扩展名

时间:2019-06-17 08:21:59

标签: python

因此,在INFACT文件夹中,我具有以下文件(以及更多具有相同扩展名的文件):

BFDRYCKSE.ad
BFDRYCKSE.txt
BFFALIV2SE.ad
BFFALIV2SE.txt

我需要根据文件名压缩这些文件,但仅压缩上面提到的那些文件。我的最终结果应该是:

BFDRYCKSE.zip, contains(BFDRYCKSE.ad, BFDRYCKSE.txt)
BFFALIV2SE.zip, contains(BFFALIV2SE.ad BFFALIV2SE.txt)

这是我的代码:

import os
import glob
import zipfile
setfile = r'C:\Users\vijo9001\Desktop\Infact'
myset = [
        "BFBRODSE",
        "BFDRYCKSE",
        "BFFALIV2SE",
        "BFFALIVSSE",
        "BFFRYSTSE",
        "BFHUSHA1SE",
        "BFHUSHA2SE",
        "BFHUSHALSE",
        "BFKONFEKSE",
        "BFKROPPVSE",
        "BFKROPP2SE",
        "BFLIV2SE",
        "BFLIVSSE",
        "BFMAKEUPSE",
        "BFMEJERISE",
        "BFTOBAKSE"
    ]
os.chdir(setfile)
list_of_lists = []
for i, pattern in enumerate(myset):
     list_of_files = glob.glob(r'*{pattern}*'.format(pattern=myset[i]))
     list_of_lists.append(list_of_files)
     n = 0
     file = os.path.splitext(list_of_files[0])[0]
     with zipfile.ZipFile(file + '.zip', 'w') as myzip:
          for f in list_of_files:
               myzip.write(f, compress_type=zipfile.ZIP_DEFLATED)

我不断得到

Traceback (most recent call last):
  File "C:/Users/vijo9001/Desktop/Retailers Check/aaa.py", line 29, in <module>
    file = os.path.splitext(list_of_files[0])[0]
IndexError: list index out of range

那是为什么?

2 个答案:

答案 0 :(得分:0)

我认为您不需要使用枚举器来访问列表元素。

您的问题陈述说,您希望每个zipfile与其应包含的.ad和.txt文件具有相同的基本名称。考虑到这一点,我会尝试按照以下方式进行尝试

virtual ptr_range<SomeInfo> getDerivedInfo() override
{
    return {std::begin(c_myInfo), std::end(c_myInfo)};
}

答案 1 :(得分:0)

我的解决方案是不定义集合名称:

= ^ .. ^ =

abstract class Animal{
    private String name;
    String latin;
}