title: Missing argument in __init__()
body: <p>I am writing a python code using os.walk module &amp; zipfile module, which walks through give directory &amp; creates zipfile of files which are having extension ".xlsx".</p>
  
  <p>Now,whenever i am trying to run my below code its giving an TypeError <b>"<strong>init</strong>() takes at least 4 arguments (3 given)".</b></p>
  
  <p>So far i think that python throwing this error against os.walk() &amp; i  think i have passed correct argument to it.</p>
  
  <pre><code>import os,zipfile
  dir_path=raw_input('Enter the root dir path\n')
  with zipfile.ZipExtFile(dir_path,'w') as zf:
      for rt_dir,foldrs,files in os.walk(dir_path):
          for file in files:
              if file.endswith('.xlsx'):
                  zf.write(os.path.join(rt_dir,file))
  </code></pre>
  
  <p>And when i run above code, it throws TypeError as bellow ..</p>
  
  <pre><code>&gt;&gt;&gt; dir_path=raw_input('Enter the root dir path\n')
  Enter the root dir path
  C:\Users\KGKadam
  &gt;&gt;&gt; with zipfile.ZipExtFile(dir_path,'w') as zf:
  ...     for rt_dir,foldrs,files in os.walk(dir_path):
  ...         for file in files:
  ...             if file.endswith('.xlsx'):
  ...                 zf.write(os.path.join(rt_dir,file))
  ...
  Traceback (most recent call last):
    File "&lt;stdin&gt;", line 1, in &lt;module&gt;
  TypeError: __init__() takes at least 4 arguments (3 given)
  &gt;&gt;&gt;
  </code></pre>
  
  <p>Please help me here, i not getting where its going wrong.</p>