Solved Extracting files with python
#1
Hi,

Not sure if I am posting this in the right place. I'm having issue's unpacking files, hope you guys can help me out with python.
I have a file named unpackfile.py. It works fine but its extract as blabla\unpackedfiles I want it to unpack in the same folder as the downloaded zip. Like you press right-click on your zip and choose "Extract Here" NOT "Extract to blabla\"

May sound like a simple question but its ripping my heart out right now please help!
Here's my code

import zipfile

def all(_in, _out, dp=None):
if dp:
return allWithProgress(_in, _out, dp)

return allNoProgress(_in, _out)


def allNoProgress(_in, _out):
try:
zin = zipfile.ZipFile(_in, 'r')
zin.extractall(_out)
except Exception, e:
print str(e)
return False

return True


def allWithProgress(_in, _out, dp):

zin = zipfile.ZipFile(_in, 'r')

nFiles = float(len(zin.infolist()))
count = 0

try:
for item in zin.infolist():
count += 1
update = count / nFiles * 100
dp.update(int(update))
zin.extract(item, _out)
except Exception, e:
print str(e)
return False

return True
Reply
#2
Definitely not for a windows guy,.....

[PatK] moving this to add-ons "Development discussion of python and binary add-ons, for scripters/coders only."
Reply
#3
(2017-01-16, 03:16)RMKBuilds Wrote: Hi,

Not sure if I am posting this in the right place. I'm having issue's unpacking files, hope you guys can help me out with python.
I have a file named unpackfile.py. It works fine but its extract as blabla\unpackedfiles I want it to unpack in the same folder as the downloaded zip. Like you press right-click on your zip and choose "Extract Here" NOT "Extract to blabla\"

May sound like a simple question but its ripping my heart out right now please help!
Here's my code

import zipfile

def all(_in, _out, dp=None):
if dp:
return allWithProgress(_in, _out, dp)

return allNoProgress(_in, _out)


def allNoProgress(_in, _out):
try:
zin = zipfile.ZipFile(_in, 'r')
zin.extractall(_out)
except Exception, e:
print str(e)
return False

return True


def allWithProgress(_in, _out, dp):

zin = zipfile.ZipFile(_in, 'r')

nFiles = float(len(zin.infolist()))
count = 0

try:
for item in zin.infolist():
count += 1
update = count / nFiles * 100
dp.update(int(update))
zin.extract(item, _out)
except Exception, e:
print str(e)
return False

return True

Why not use the built in ? Or is this not to your needs? Extract(archive_url[, destination])
Then just remove the file name from the archive_url
http://kodi.wiki/view/List_of_built-in_functions
Reply
#4
Thanks! with your help I have figured it out!
Topic can be closed now.
Reply

Logout Mark Read Team Forum Stats Members Help
Extracting files with python0