I would like to unzip a file with Python using 7zip executable. In Perl this is pretty straightforward:
$zip_exe_path = "C:\\Dropbox\\7-zip\\7z.exe";
$logfile_path = "C:\\Temp\\zipped_file.7z";
system ("$zip_exe_path x $log_file_path -y");
I tried this:
import subprocess
zip_exe_path = "C:\\Dropbox\\7-zip\\7z.exe"
logfile_path = "C:\\Temp\\zipped_file.7z"
subprocess.call(['zip_exe_path','x','logfile_path','-y'])
When I do so I get this error:
FileNotFoundError: [WinError 2] The system cannot find the file specified
Thanks for any help!
The error is that you are passing the strings 'zip_exe_path'
and 'logfile_path'
instead of the values of those variables.
import subprocess
zip_exe_path = "C:\\Dropbox\\7-zip\\7z.exe"
logfile_path = "C:\\Temp\\zipped_file.7z"
subprocess.call([zip_exe_path, 'x', logfile_path, '-y'])
You can of course pass the command as a single string with shell=True
but the shell does not add any value and incurs some overhead (and risk!)