请用python实现从targz压缩文件里删除指定的一个文件
可以使用tarfile模块来实现从tar.gz压缩文件中删除指定的一个文件。
下面是一个示例代码:
import tarfile
def delete_file(tar_file, file_to_delete):
# 打开tar.gz文件
with tarfile.open(tar_file, 'r:gz') as tar:
# 获取所有文件列表
file_list = tar.getnames()
# 创建一个新的tar.gz文件
with tarfile.open(tar_file + '.new', 'w:gz') as new_tar:
# 遍历所有文件
for file_name in file_list:
# 如果文件名不是要删除的文件,则将其添加到新的tar.gz文件中
if file_name != file_to_delete:
# 从原始tar.gz文件中提取文件内容,并将其添加到新的tar.gz文件中
file_content = tar.extractfile(file_name)
new_tar.addfile(tarfile.TarInfo(name=file_name), fileobj=file_content)
# 删除原始tar.gz文件
os.remove(tar_file)
# 将新的tar.gz文件重命名为原始文件名
os.rename(tar_file + '.new', tar_file)
# 调用示例
delete_file('path/to/archive.tar.gz', 'file_to_delete.txt')
请将'path/to/archive.tar.gz'替换为实际的tar.gz文件路径,将'file_to_delete.txt'替换为要删除的文件名
原文地址: http://www.cveoy.top/t/topic/hYX7 著作权归作者所有。请勿转载和采集!