# zip() Is Build In Function, For Combine Two Values Together
# If The Passed Iterators Have Different Lengths,
# The Iterator With The Least Items Decides The Length Of The New Iterator.
# And Of Course zip() Use With Iterator
# If We Have Tow tuples() Ane We Want Join Together Like :-
# Example :-
a = ("John", "Charles", "Mike")
b = ("Jenny", "Christy", "Monica", "Vicky")
together = zip( a, b )
for names in together :
print( names )
# Will Print ==> ('John', 'Jenny')
# ('Charles', 'Christy')
# ('Mike', 'Monica')
print( "-" * 100 ) # Just Separator To Separate Them
# Now I Think You Say Why ( "Vicky" ) Not Print With Them,
# Because The First tuple() Have Just 3
# If We Want Put ( "Vicky" ) We Need Append
# Another Value In tuple() /a :-
a = ("John", "Charles", "Mike", "Victor")
b = ("Jenny", "Christy", "Monica", "Vicky")
together = zip( a, b )
for names in together :
print( names )
# Will Print ('John', 'Jenny')
# ('Charles', 'Christy')
# ('Mike', 'Monica')
# ('Victor', 'Vicky')
# As We See ( "Vicky" ) Has Append, With The New One ==> ( 'Victor' ).
# So The Summary Is, zip() Combine Two Values Together.
# Example With List :-
c = [ "Mido", "Mohamed", "Abdallah" ]
n = [ 17, 28, 30 ]
t = zip( c, n )
for mylist in t :
print( mylist )
# Will Print ==> ('Mido', 17)
# ('Mohamed', 28)
# ('Abdallah', 30)
import shutil
import zipfile
# base_name is the name of the zip file you want to create
# format is zip for zip file
# root_dir is the direct path of the folder or file you want to zip
shutil.make_archive(base_name='zip_file_name', format='zip', root_dir='data')
# read zip file from current path
with zipfile.ZipFile(file='zip_file_name.zip', mode='r') as zip_ref:
# create folder name extract_data in current directory with the extracted data
zip_ref.extractall(path='extract_data')
# Extract a single file from a zip file
with zipfile.ZipFile(file='zip_file_name.zip', mode='r') as zip_ref:
# Extract a file name called secrets.dat
zip_ref.extract(member='secrets.dat')
# extract a list of filename within a zip file
with zipfile.ZipFile(file='zip_file_name.zip', mode='r') as zip_obj:
# Get list of files names in zip
filenames = zip_obj.namelist()
# Iterate over the list of file names in given list & print them
for filename in filenames:
print(filename)
"""
Joining any number of iterables by combining elements in order
- Iterables include: str, list, tuples, dict etc...
- No error will be incurred if you zip lists of differing lengths,...
...it will simply zip up to the length of the shortest list
"""
lst1 = [1, 2, 3, 4, 5, 7]
lst2 = "mangos"
lst3 = (3.1, 5.4, 0.2, 23.2, 8.88, 898)
lst4 = {"Car": "Mercedes Benz", "Location": "Eiffel Tower", "Organism": "Tardigrade"}
# lst5, lst6, ...
result = list(zip(lst1, lst2, lst3, lst4.keys())) # Check out dictionary methods
print(result)
## [(1, 'm', 3.1, 'Car'), (2, 'a', 5.4, 'Location'), (3, 'n', 0.2, 'Organism')]