title: Python - TypeError: Can't mix strings and bytes in path components
body: <p>The following code: </p>
  
  <pre><code>import os
  
  directory_in_str = 'C:\\Work\\Test\\'
  directory = os.fsencode(directory_in_str)
  
  for file in os.listdir(directory):
      filename = os.fsdecode(file)
      if filename.lower().endswith(".xml"):
          with open(os.path.join(directory, filename), 'r') as handle:
              for line in handle:
                  print(line)
      else:
          continue
  </code></pre>
  
  <p>is giving me this error:</p>
  
  <pre><code>Traceback (most recent call last):
    File "c:\Work\balance_search2.py", line 9, in &lt;module&gt;
      with open(os.path.join(directory, filename), 'r') as handle:
    File "C:\ProgramData\Anaconda3\lib\ntpath.py", line 114, in join
      genericpath._check_arg_types('join', path, *paths)
    File "C:\ProgramData\Anaconda3\lib\genericpath.py", line 151, in _check_arg_types
      raise TypeError("Can't mix strings and bytes in path components") from None
  TypeError: Can't mix strings and bytes in path components
  </code></pre>
  
  <p>Can anyone help me fix it please.</p>