code: def main(args):
      url = _URLS["gutenberg"]
      file_hash = _URL_FILE_STATS[url]
      target_download_location = os.path.join(
          args.cache_path, os.path.basename(url)
      )
      download(url, target_download_location, sha1_hash=file_hash)
      save_dir = (
          args.dataset if args.save_dir is None else args.save_dir
      )
      if not os.path.exists(save_dir):
          os.makedirs(save_dir, exist_ok=True)
      print(f"Save to {save_dir}")
      with zipfile.ZipFile(target_download_location) as f:
          for name in f.namelist():
              if name.endswith(".txt"):
                  filename = os.path.basename(name)
                  with f.open(name) as in_file:
                      with open(
                          os.path.join(
                              save_dir, filename.replace(" ", "_")
                          ),
                          "wb",
                      ) as out_file:
                          shutil.copyfileobj(in_file, out_file)
  
file_path: gluon-nlp/scripts/datasets/pretrain_corpus/prepare_gutenberg.py
imports: import os
  import argparse
  import zipfile
  from gluonnlp.base import get_data_home_dir
  from gluonnlp.utils.misc import download, load_checksum_stats
  import shutil
label_desc: Use image node_id 2 for calling a global function with example usage: main(args) without return types