first commit
This commit is contained in:
parent
be3318fa37
commit
ee90e8967c
71
main.py
Normal file
71
main.py
Normal file
@ -0,0 +1,71 @@
|
|||||||
|
import os
|
||||||
|
import sys
|
||||||
|
import subprocess
|
||||||
|
import tempfile
|
||||||
|
|
||||||
|
def get_seven_zip_path():
|
||||||
|
seven_zip_executable = "7z"
|
||||||
|
seven_zip_path = None
|
||||||
|
|
||||||
|
if os.name == "nt":
|
||||||
|
for path in os.environ["PATH"].split(os.pathsep):
|
||||||
|
exe_path = os.path.join(path, seven_zip_executable + ".exe")
|
||||||
|
if os.path.exists(exe_path):
|
||||||
|
seven_zip_path = exe_path
|
||||||
|
break
|
||||||
|
else:
|
||||||
|
for path in os.environ["PATH"].split(os.pathsep):
|
||||||
|
exe_path = os.path.join(path, seven_zip_executable)
|
||||||
|
if os.path.exists(exe_path):
|
||||||
|
seven_zip_path = exe_path
|
||||||
|
break
|
||||||
|
if not seven_zip_path:
|
||||||
|
default_paths = [
|
||||||
|
"/usr/local/bin/{}".format(seven_zip_executable),
|
||||||
|
"/usr/bin/{}".format(seven_zip_executable),
|
||||||
|
"/usr/local/{}".format(seven_zip_executable)
|
||||||
|
]
|
||||||
|
for path in default_paths:
|
||||||
|
if os.path.exists(path):
|
||||||
|
seven_zip_path = path
|
||||||
|
break
|
||||||
|
|
||||||
|
return seven_zip_path
|
||||||
|
|
||||||
|
def main():
|
||||||
|
# Search for 7zip executable
|
||||||
|
seven_zip = get_seven_zip_path()
|
||||||
|
|
||||||
|
if not seven_zip:
|
||||||
|
print("Error: 7zip is not installed!")
|
||||||
|
sys.exit(1)
|
||||||
|
|
||||||
|
# Get the path of the dragged file
|
||||||
|
path = sys.argv[1]
|
||||||
|
|
||||||
|
if not os.path.exists(path):
|
||||||
|
print("Error: File does not exist!")
|
||||||
|
|
||||||
|
# Get the extension of the dragged file
|
||||||
|
extension = os.path.splitext(path)[1]
|
||||||
|
|
||||||
|
# Get the directory path of the dragged file
|
||||||
|
dir_path = os.path.dirname(path)
|
||||||
|
|
||||||
|
# Get the base filename of the dragged file without extension
|
||||||
|
base_filename = os.path.splitext(os.path.basename(path))[0]
|
||||||
|
|
||||||
|
# Create a temporary directory
|
||||||
|
with tempfile.TemporaryDirectory() as tmp_dir:
|
||||||
|
# Extract the compressed file to the temporary directory
|
||||||
|
subprocess.call([seven_zip, "x", "-y", "-o" + tmp_dir, path])
|
||||||
|
|
||||||
|
# Create the output zip file path
|
||||||
|
zip_file_path = os.path.join(dir_path, base_filename + ".zip")
|
||||||
|
|
||||||
|
# Compress the contents of the temporary directory into a zip archive
|
||||||
|
subprocess.call([seven_zip, "a", "-m0=lzma", "-r", "-tzip", zip_file_path, f"{tmp_dir}/*"])
|
||||||
|
print("File converted to zip archive: ", zip_file_path)
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
main()
|
Loading…
Reference in New Issue
Block a user