py7zr 怎么将一个7z压缩文件中符合条件的文件全部提取出来到一个新的7z包
时间: 2023-08-14 11:24:52 浏览: 121
你可以使用 py7zr 库中的 extractall() 方法来提取符合条件的文件到一个新的7z包中。具体步骤如下:
1. 打开原始的7z文件:
```
import py7zr
with py7zr.SevenZipFile('original.7z', mode='r') as z:
# do something with z
```
2. 遍历压缩包中的文件,找到符合条件的文件:
```
with py7zr.SevenZipFile('original.7z', mode='r') as z:
for filename in z.getnames():
# 判断文件是否符合条件,这里以文件名中是否含有特定字符串为例
if 'specific_string' in filename:
# do something with the file
```
3. 创建一个新的7z包:
```
with py7zr.SevenZipFile('new.7z', mode='w') as z:
# do something with z
```
4. 将符合条件的文件添加到新的7z包中:
```
with py7zr.SevenZipFile('original.7z', mode='r') as z1, py7zr.SevenZipFile('new.7z', mode='w') as z2:
for filename in z1.getnames():
# 判断文件是否符合条件,这里以文件名中是否含有特定字符串为例
if 'specific_string' in filename:
# 提取文件并添加到新的7z包中
z2.write(filename, z1.read(filename))
```
5. 关闭打开的7z文件:
```
with py7zr.SevenZipFile('original.7z', mode='r') as z1, py7zr.SevenZipFile('new.7z', mode='w') as z2:
for filename in z1.getnames():
if 'specific_string' in filename:
z2.write(filename, z1.read(filename))
```
完整代码如下:
```
import py7zr
# 打开原始的7z文件
with py7zr.SevenZipFile('original.7z', mode='r') as z1:
# 创建一个新的7z包
with py7zr.SevenZipFile('new.7z', mode='w') as z2:
# 遍历压缩包中的文件,找到符合条件的文件
for filename in z1.getnames():
if 'specific_string' in filename:
# 提取文件并添加到新的7z包中
z2.write(filename, z1.read(filename))
# 关闭打开的7z文件
z1.close()
z2.close()
```
阅读全文