{"id":9732,"date":"2022-09-20T11:44:51","date_gmt":"2022-09-20T06:14:51","guid":{"rendered":"https:\/\/jassweb.com\/solved\/solved-how-do-i-unzip-files-en-masse-but-skip-and-log-errors\/"},"modified":"2022-09-20T11:44:51","modified_gmt":"2022-09-20T06:14:51","slug":"solved-how-do-i-unzip-files-en-masse-but-skip-and-log-errors","status":"publish","type":"post","link":"https:\/\/jassweb.com\/solved\/solved-how-do-i-unzip-files-en-masse-but-skip-and-log-errors\/","title":{"rendered":"[Solved] How do I unzip files en masse but skip and log errors"},"content":{"rendered":"<p> [ad_1]<br \/>\n<\/p>\n<div id=\"answer-66495766\" class=\"answer js-answer accepted-answer js-accepted-answer\" data-answerid=\"66495766\" data-parentid=\"66492110\" data-score=\"0\" data-position-on-page=\"1\" data-highest-scored=\"1\" data-question-has-accepted-highest-score=\"1\" itemprop=\"acceptedAnswer\" itemscope itemtype=\"https:\/\/schema.org\/Answer\">\n<div class=\"post-layout\">\n<div class=\"votecell post-layout--left\"><\/div>\n<div class=\"answercell post-layout--right\">\n<div class=\"s-prose js-post-body\" itemprop=\"text\">\n<p>I&#8217;ve written my solution in Python, since I found it easier to write and to understand. You need Python 3 in order to run this script.<\/p>\n<pre class=\"lang-python prettyprint-override\"><code>import os\nimport shutil\nimport sys\nimport datetime\nimport glob\nimport subprocess\n\nPATH_7ZIP = r'C:\\Program Files\\7-Zip\\7z.exe' # Change it according to your 7-Zip installation\nPATH_ZIPS = r'zips'                          # This is where you should put your zips\nPATH_OUTF = r'outputs'                       # This is where the output folders will be put\n\nFILE_LOGS = r'status.log'                    # This is the name of the log file\n\ndef log(msg):\n    with open(FILE_LOGS, 'a') as f:\n        now = datetime.datetime.now()\n        f.write(\"{:04d}-{:02d}-{:02d} {:02d}:{:02d}:{:02d}.{:06d} {}\\n\".format(\n            now.year,\n            now.month,\n            now.day,\n            now.hour,\n            now.minute,\n            now.second,\n            now.microsecond,\n            msg\n        ))\n\ndef fatal_error(msg, ret):\n    print(\"Fatal Error:\", msg, file=sys.stderr)\n    log(\"Fatal Error: \" + msg)\n    exit(ret)\n\ndef warning(msg):\n    log(\"Warning: \" + msg)\n\ndef info(msg):\n    log(\"Info: \" + msg)\n\n# The core logic\ndef extract_zip(z):\n    # This executes 7-Zip:\n    #   \"e\" : extract\n    #   z   : the zip file you want to unzip\n    #   \"-y\": say yes to all the questions that 7-Zip may ask (like if you want to override the file)\n    #   \"-p\": set the password to none (this prevents 7-Zip to ask it)\n    #   \"-o\": sets the output path (which is PATH_OUTF\\ZIP_NAME)\n    proc = subprocess.run([PATH_7ZIP, \"e\", z, \"-y\", \"-p\", \"-o\" + os.path.join(\n            PATH_OUTF,\n            os.path.basename(z))\n        ], capture_output=True)\n\n    # if 7-Zip returns an error lets log it\n    if proc.returncode != 0:\n        warning(z + \". \" + proc.stderr.decode(\"ascii\").replace('\\r', '').\n            replace('\\n', ''))\n    # else log that we have successfully extracted the zip\n    else:\n        info(z)\n\ndef main():\n    info(\"Starting main\")\n    # Search for all the zips \n    zips = glob.glob(os.path.join(PATH_ZIPS, \"*.zip\"))\n    # Add also all the 7z (optional)\n    zips.extend(glob.glob(os.path.join(PATH_ZIPS, \"*.7z\")))\n    # (here you can add other file extensions)\n\n    info(\"Found \" + str(len(zips)) + \" zips!\")\n\n    for z in zips:\n        extract_zip(z)\n\n    info(\"End\")\n\n# ENTRY POINT: here the program begins\nif __name__ == \"__main__\":\n    info(\"Starting new session\")\n    \n    # Lets check the globals\n    if not os.path.exists(PATH_7ZIP):\n        fatal_error(\"7z.exe not found!\", 2)\n    if not os.path.exists(PATH_ZIPS):\n        fatal_error(\"Cannot find zips folder!\", 3)\n    if os.path.exists(PATH_OUTF):\n        # In order to make this script removing the previous outputs, it asks you to pass in the commandline \"replace\". By doing so we prevent the user to delete the previous data by mistake\n        if len(sys.argv) == 2 and sys.argv[1] == 'replace':\n            info(\"Deleting previous output folder\")\n            shutil.rmtree(PATH_OUTF)\n        else:\n            fatal_error(\"Output dir already exists! Please remove it or call \" +\n                        \"this script using {} replace\".format(sys.argv[0]), 4)\n    os.makedirs(PATH_OUTF)\n    \n    main()\n<\/code><\/pre>\n<p>NOTE: the log file does not get overwritten when you run again the script. The script just creates (if necessary) and appends to that file.<\/p>\n<\/p><\/div>\n<div class=\"mt24\"><\/div>\n<\/div>\n<p>            <span class=\"d-none\" itemprop=\"commentCount\">1<\/span> <\/p><\/div>\n<\/div>\n<p>[ad_2]<\/p>\n<p>solved How do I unzip files en masse but skip and log errors <\/p>\n","protected":false},"excerpt":{"rendered":"<p>[ad_1] I&#8217;ve written my solution in Python, since I found it easier to write and to understand. You need Python 3 in order to run this script. import os import shutil import sys import datetime import glob import subprocess PATH_7ZIP = r&#8217;C:\\Program Files\\7-Zip\\7z.exe&#8217; # Change it according to your 7-Zip installation PATH_ZIPS = r&#8217;zips&#8217; # &#8230; <a title=\"[Solved] How do I unzip files en masse but skip and log errors\" class=\"read-more\" href=\"https:\/\/jassweb.com\/solved\/solved-how-do-i-unzip-files-en-masse-but-skip-and-log-errors\/\" aria-label=\"More on [Solved] How do I unzip files en masse but skip and log errors\">Read more<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[320],"tags":[2368,2739],"class_list":["post-9732","post","type-post","status-publish","format-standard","hentry","category-solved","tag-7zip","tag-unzip"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>[Solved] How do I unzip files en masse but skip and log errors - JassWeb<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/jassweb.com\/solved\/solved-how-do-i-unzip-files-en-masse-but-skip-and-log-errors\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"[Solved] How do I unzip files en masse but skip and log errors - JassWeb\" \/>\n<meta property=\"og:description\" content=\"[ad_1] I&#8217;ve written my solution in Python, since I found it easier to write and to understand. You need Python 3 in order to run this script. import os import shutil import sys import datetime import glob import subprocess PATH_7ZIP = r&#039;C:Program Files7-Zip7z.exe&#039; # Change it according to your 7-Zip installation PATH_ZIPS = r&#039;zips&#039; # ... Read more\" \/>\n<meta property=\"og:url\" content=\"https:\/\/jassweb.com\/solved\/solved-how-do-i-unzip-files-en-masse-but-skip-and-log-errors\/\" \/>\n<meta property=\"og:site_name\" content=\"JassWeb\" \/>\n<meta property=\"article:published_time\" content=\"2022-09-20T06:14:51+00:00\" \/>\n<meta name=\"author\" content=\"Kirat\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Kirat\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/jassweb.com\/solved\/solved-how-do-i-unzip-files-en-masse-but-skip-and-log-errors\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/jassweb.com\/solved\/solved-how-do-i-unzip-files-en-masse-but-skip-and-log-errors\/\"},\"author\":{\"name\":\"Kirat\",\"@id\":\"https:\/\/jassweb.com\/solved\/#\/schema\/person\/65c9c7b7958150c0dc8371fa35dd7c31\"},\"headline\":\"[Solved] How do I unzip files en masse but skip and log errors\",\"datePublished\":\"2022-09-20T06:14:51+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/jassweb.com\/solved\/solved-how-do-i-unzip-files-en-masse-but-skip-and-log-errors\/\"},\"wordCount\":79,\"publisher\":{\"@id\":\"https:\/\/jassweb.com\/solved\/#organization\"},\"keywords\":[\"7zip\",\"unzip\"],\"articleSection\":[\"Solved\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/jassweb.com\/solved\/solved-how-do-i-unzip-files-en-masse-but-skip-and-log-errors\/\",\"url\":\"https:\/\/jassweb.com\/solved\/solved-how-do-i-unzip-files-en-masse-but-skip-and-log-errors\/\",\"name\":\"[Solved] How do I unzip files en masse but skip and log errors - JassWeb\",\"isPartOf\":{\"@id\":\"https:\/\/jassweb.com\/solved\/#website\"},\"datePublished\":\"2022-09-20T06:14:51+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/jassweb.com\/solved\/solved-how-do-i-unzip-files-en-masse-but-skip-and-log-errors\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/jassweb.com\/solved\/solved-how-do-i-unzip-files-en-masse-but-skip-and-log-errors\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/jassweb.com\/solved\/solved-how-do-i-unzip-files-en-masse-but-skip-and-log-errors\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/jassweb.com\/solved\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"[Solved] How do I unzip files en masse but skip and log errors\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/jassweb.com\/solved\/#website\",\"url\":\"https:\/\/jassweb.com\/solved\/\",\"name\":\"JassWeb\",\"description\":\"Build High-quality Websites\",\"publisher\":{\"@id\":\"https:\/\/jassweb.com\/solved\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/jassweb.com\/solved\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/jassweb.com\/solved\/#organization\",\"name\":\"Jass Web\",\"url\":\"https:\/\/jassweb.com\/solved\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/jassweb.com\/solved\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/jassweb.com\/wp-content\/uploads\/2021\/02\/jass-website-logo-1.png\",\"contentUrl\":\"https:\/\/jassweb.com\/wp-content\/uploads\/2021\/02\/jass-website-logo-1.png\",\"width\":693,\"height\":132,\"caption\":\"Jass Web\"},\"image\":{\"@id\":\"https:\/\/jassweb.com\/solved\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/jassweb.com\/solved\/#\/schema\/person\/65c9c7b7958150c0dc8371fa35dd7c31\",\"name\":\"Kirat\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/jassweb.com\/solved\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/jassweb.com\/solved\/wp-content\/litespeed\/avatar\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1776403586\",\"contentUrl\":\"https:\/\/jassweb.com\/solved\/wp-content\/litespeed\/avatar\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1776403586\",\"caption\":\"Kirat\"},\"sameAs\":[\"http:\/\/jassweb.com\"],\"url\":\"https:\/\/jassweb.com\/solved\/author\/jaspritsinghghumangmail-com\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"[Solved] How do I unzip files en masse but skip and log errors - JassWeb","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/jassweb.com\/solved\/solved-how-do-i-unzip-files-en-masse-but-skip-and-log-errors\/","og_locale":"en_US","og_type":"article","og_title":"[Solved] How do I unzip files en masse but skip and log errors - JassWeb","og_description":"[ad_1] I&#8217;ve written my solution in Python, since I found it easier to write and to understand. You need Python 3 in order to run this script. import os import shutil import sys import datetime import glob import subprocess PATH_7ZIP = r'C:Program Files7-Zip7z.exe' # Change it according to your 7-Zip installation PATH_ZIPS = r'zips' # ... Read more","og_url":"https:\/\/jassweb.com\/solved\/solved-how-do-i-unzip-files-en-masse-but-skip-and-log-errors\/","og_site_name":"JassWeb","article_published_time":"2022-09-20T06:14:51+00:00","author":"Kirat","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Kirat","Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/jassweb.com\/solved\/solved-how-do-i-unzip-files-en-masse-but-skip-and-log-errors\/#article","isPartOf":{"@id":"https:\/\/jassweb.com\/solved\/solved-how-do-i-unzip-files-en-masse-but-skip-and-log-errors\/"},"author":{"name":"Kirat","@id":"https:\/\/jassweb.com\/solved\/#\/schema\/person\/65c9c7b7958150c0dc8371fa35dd7c31"},"headline":"[Solved] How do I unzip files en masse but skip and log errors","datePublished":"2022-09-20T06:14:51+00:00","mainEntityOfPage":{"@id":"https:\/\/jassweb.com\/solved\/solved-how-do-i-unzip-files-en-masse-but-skip-and-log-errors\/"},"wordCount":79,"publisher":{"@id":"https:\/\/jassweb.com\/solved\/#organization"},"keywords":["7zip","unzip"],"articleSection":["Solved"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/jassweb.com\/solved\/solved-how-do-i-unzip-files-en-masse-but-skip-and-log-errors\/","url":"https:\/\/jassweb.com\/solved\/solved-how-do-i-unzip-files-en-masse-but-skip-and-log-errors\/","name":"[Solved] How do I unzip files en masse but skip and log errors - JassWeb","isPartOf":{"@id":"https:\/\/jassweb.com\/solved\/#website"},"datePublished":"2022-09-20T06:14:51+00:00","breadcrumb":{"@id":"https:\/\/jassweb.com\/solved\/solved-how-do-i-unzip-files-en-masse-but-skip-and-log-errors\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/jassweb.com\/solved\/solved-how-do-i-unzip-files-en-masse-but-skip-and-log-errors\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/jassweb.com\/solved\/solved-how-do-i-unzip-files-en-masse-but-skip-and-log-errors\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/jassweb.com\/solved\/"},{"@type":"ListItem","position":2,"name":"[Solved] How do I unzip files en masse but skip and log errors"}]},{"@type":"WebSite","@id":"https:\/\/jassweb.com\/solved\/#website","url":"https:\/\/jassweb.com\/solved\/","name":"JassWeb","description":"Build High-quality Websites","publisher":{"@id":"https:\/\/jassweb.com\/solved\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/jassweb.com\/solved\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/jassweb.com\/solved\/#organization","name":"Jass Web","url":"https:\/\/jassweb.com\/solved\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/jassweb.com\/solved\/#\/schema\/logo\/image\/","url":"https:\/\/jassweb.com\/wp-content\/uploads\/2021\/02\/jass-website-logo-1.png","contentUrl":"https:\/\/jassweb.com\/wp-content\/uploads\/2021\/02\/jass-website-logo-1.png","width":693,"height":132,"caption":"Jass Web"},"image":{"@id":"https:\/\/jassweb.com\/solved\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/jassweb.com\/solved\/#\/schema\/person\/65c9c7b7958150c0dc8371fa35dd7c31","name":"Kirat","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/jassweb.com\/solved\/#\/schema\/person\/image\/","url":"https:\/\/jassweb.com\/solved\/wp-content\/litespeed\/avatar\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1776403586","contentUrl":"https:\/\/jassweb.com\/solved\/wp-content\/litespeed\/avatar\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1776403586","caption":"Kirat"},"sameAs":["http:\/\/jassweb.com"],"url":"https:\/\/jassweb.com\/solved\/author\/jaspritsinghghumangmail-com\/"}]}},"_links":{"self":[{"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/posts\/9732","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/comments?post=9732"}],"version-history":[{"count":0,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/posts\/9732\/revisions"}],"wp:attachment":[{"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/media?parent=9732"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/categories?post=9732"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/tags?post=9732"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}