我想将我正在提取的文件的名称更改为新的:
i = 0
for file in zip_file.namelist():
path = 'C:\test\object'
zip_file.extract(file, path) #Change name here of file
i+=1
是否可以将file
的名称更改为str(i)+'_'+'file'
之类的内容?我知道我可以使用shutil.move()
,但如果可能的话,我想保持自己的风格。
答案 0 :(得分:3)
您可以通过zip_file对象的open方法使用文件对象直接在正确的位置提取文件。
zip_file = zipfile.ZipFile('toto.zip')
target_path = 'C:\test\object'
for i, filename in enumerate(zip_file.namelist()):
target = os.path.join(target_path, "%05d_%s" % (i, filename))
file_obj = open(target, 'wb')
try:
shutil.copyfileobj(zip_file.open(filename, 'r'), file_obj)
finally:
file_obj.close()
顺便说一句,你应该避免使用名为" file"的局部变量。因为它是一种内置类型。