因此,在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
那是为什么?
答案 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;
}