Python appending *.* to string

141 Views Asked by At

Why does

>>> import os
>>> os.listdir('C:\\Users\\tom\\Desktop\\PythonScripts\\charList.txt')

give this error:

Traceback (most recent call last):
  File "<interactive input>", line 1, in <module>
WindowsError: [Error 267] The directory name is invalid: 'C:\\Users\\tom\\Desktop\\PythonScripts\\charList.txt/*.*'

I thought it was an issue with the string encoding, but apparently not?

2

There are 2 best solutions below

2
On BEST ANSWER

Here: 'C:\Users\tom\Desktop\PythonScripts\charList.txt'. That's a file name, not a directory name.

Try without charList.txt:

os.listdir('C:\\Users\\tom\\Desktop\\PythonScripts')

Any particular reason why you're appending the filename to a listdir operation?

1
On
listdir(path) -> list_of_strings

Return a list containing the names of the entries in the directory.

path: path of directory to list

The list is in arbitrary order.  It does not include the special
entries '.' and '..' even if they are present in the directory.

You've given it a path to a file, not a directory.