title: TypeError: join() argument must be str or bytes, not 'list'
body: <p>I am new to python and just learning the os.walk() and tarfile. I am trying to traverse a folder which has files and subfolders with files, and trying to add all of them to tar file. I keep getting the error "TypeError: join() argument must be str or bytes, not 'list'" </p>
  
  <p>Before I tried to add to the tar file, I have tried to just print the contents. Gives the same error. I can get through that by adding str to the parameters of the os.path.dirname but not sure if that is the right thing to do.</p>
  
  <pre><code>import tarfile
  import os
  
  tnt = tarfile.open("sample.tar.gz", 'w:gz')
  
  dt = os.walk('C:\\users\\cap\\desktop\\test1')
  for root, d_names, f_names in dt:
     print(os.path.join((root), (f_names))) #error
     tnt.add(os.path.join(root, f_names) #error
  tnt.close()
  
  print(os.path.join((root), (f_names)))
  genericpath._check_arg_types('join', path, *paths)
  </code></pre>
  
  <p>Output:</p>
  
  <pre><code>TypeError: join() argument must be str or bytes, not 'list''''
  </code></pre>