我正在编写程序,它从字符串中获取文件名的扩展名而不是下载并提取它,我可以使用 Tar.gz 和 zip 类型的压缩来完成它,但是在提取 Bz2 类型的文件时,我能够读取文件并将数据传输到同一目录中的新文件,但我想要的是使用“ExtractAll”之类的东西创建像 zipfile 和 tarfile 这样的文件夹并在其中提取文件,但我无法帮助任何人
def bz2_download(*args):
mystring_zip = ' '.join(args)
print('{} Bz2 file Download Started!!!'.format(mystring_zip.split('/')[-1].split('.')[-2]))
r = requests.get(mystring_zip)
filename = mystring_zip.split('/')[-1] # this will take only -1 splitted part of the url
with open(filename, 'wb') as output_file:
output_file.write(r.content)
print('{} Bz2 file Download Completed!!!'.format(mystring_zip.split('/')[-1].split('.')[-2]))
path_zip = mystring_zip.split('/')[-1].split('.')[0]
print(path_zip, '+++++++++++++++++++++++++++++++++++++++++++++++++++++++')
extract_dir = path_zip
print('--------------------------{} extraction Started----------------------------------'.format(extract_dir))
os.mkdir(path_zip)
with open(path_zip, 'wb') as new_file, open(filename, 'rb') as file:
decompressor = _bz2.BZ2Decompressor()
for data in iter(lambda: file.read(100 * 1024), b''):
a = new_file.write(decompressor.decompress(data))
print(a, '1111111111111111111111111111111111111111111')
if extract_dir:
print('---------------------------{} extraction completed----------------------------------'.format(extract_dir))
else:
print('---------------------------{} extraction Failed----------------------------------'.format(extract_dir))
这是我的 Tar.gz 代码,它下载文件并将其解压缩到一个文件夹,想要对 bzip2 文件做类似的事情
def tar_download(*args):
mystring_tar = ' '.join(args)
print('{} Tar.gz file Download Started!!!'.format(mystring_tar.split('/')[-1].split('.')[0]))
r = requests.get(mystring_tar)
filename = mystring_tar.split('/')[-1]
with open(filename, 'wb') as output_file:
output_file.write(r.content)
print(' {} Tar.gz file Download Completed!!!'.format(mystring_tar.split('/')[-1].split('.')[0]))
path_tar = mystring_tar.split('/')[-1].split('.')[0]
extract_dir = path_tar
print('---------------------------{} extraction Started----------------------------------'.format(extract_dir))
thetarfile = tarfile.open(filename, mode="r|gz")
thetarfile.extractall(extract_dir)
if extract_dir:
print('---------------------------{} extraction Complete----------------------------------'.format(extract_dir))
else:
print('---------------------------{} extraction Failed----------------------------------'.format(extract_dir))