0

我正在编写程序,它从字符串中获取文件名的扩展名而不是下载并提取它,我可以使用 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))


4

0 回答 0