在Python中,您可以使用aiofiles
库来异步解压ZIP文件。首先,确保安装了aiofiles
库:
pip install aiofiles
然后,您可以使用以下代码异步解压ZIP文件:
import aiofiles
import asyncio
import zipfile
async def unzip_async(zip_file_path, dest_path):
async with aiofiles.open(zip_file_path, mode='rb') as f:
zip_content = await f.read()
with zipfile.ZipFile(io.BytesIO(zip_content)) as zip_ref:
zip_ref.extractall(dest_path)
async def main():
zip_file_path = 'example.zip'
dest_path = 'extracted_files'
await unzip_async(zip_file_path, dest_path)
print(f"ZIP file {zip_file_path} has been unzipped to {dest_path}")
if __name__ == '__main__':
asyncio.run(main())
在这个示例中,我们首先使用aiofiles
库异步读取ZIP文件的内容。然后,我们将ZIP内容放入一个BytesIO
对象,以便将其作为文件对象传递给zipfile
模块。最后,我们使用zipfile
模块的extractall
方法将ZIP文件解压到指定的目标目录。