Getting a List of All Files and Folders in a Directory

00:00 In this lesson, you’ll learn how to get a list of all files and folders in a directory in Python. Getting a list of all files and folders in a directory is a natural first step to many file-related operations in Python. When you’re faced with many ways of doing something, it can be a good indication that there’s no one-size-fits-all solution to your problems.

00:21 Most likely every solution will have its own advantages and trade-offs. In this course, you’ll be focusing on the most general purpose techniques in the pathlib module to list items in a directory.

00:34 It all begins with creating a Path object, which will be different depending on your operating system. On Windows, you’ll get a WindowsPath object while Linux and macOS will return PosixPath.

00:47 With that out of the way, it’s now time to dive into listing folder contents.

00:52 You can start by importing pathlib.

00:57 Next, set desktop equal to pathlib.Path with a capital P parentheses, and inside those parentheses, double quotes, and inside those quotes, you can add your path.

01:10 The path for this example is C:/Users/ Alexa/OneDrive/ Desktop.

01:23 You may notice this path includes backslashes. If your path looks similar, it may cause an issue. If you hit Enter, you can see the error.

01:32 This is because in Python, backslashes are commonly used as escape characters. To make it a raw string instead, you can add an r before your path.

01:42 This special prefix tells Python to treat backslashes as literal characters. So you can type desktop = pathlib.Path(

01:53 and this time add an r, and then your quotes with your path in between them. C:/Users/Alexa/ OneDrive/Desktop, and then close off those parentheses.

02:08 Now when you hit Enter, no error. Next, you can call the iterdir() method on your desktop path object. If you only need to list the contents of a given directory and you don’t need to get the contents of each subdirectory too, then you can use the Path object’s iterdir() method.

02:28 The iterdir() method, when called on a Path object, returns a generator that yields Path objects representing child items.

02:36 A generator in Python is a type of iterable object that generates values lazily. This will allow you to iterate over the contents of a directory without loading all file paths into memory at once, which can be useful when dealing with directories containing a large number of files.

02:52 You can jump over to your REPL. Next, you can call the iterdir() method on your desktop variable. The desktop variable contains a Path object representing the file path to your desktop directory.

03:05 When calling the iterdir() method on your desktop variable, it’ll return a generator that yields Path objects representing child items such as file or directory.

03:15 So you can type desktop.iterdir()

03:22 and to see your list of files and folders, you can wrap the generator in a list constructor. So you can type list(desktop.iterdir()),

03:33 and then your closing list parentheses. Hit Enter. As you can see, you get back a list of items. Some of the items you might see is desktop.ini, Notes, realpython, scripts, and `todo.txt. Passing the generator produced by iterdir() to the list constructor provides you with a list of Path objects representing all the items in the desktop directory.

04:00 The list of items contain both files and folders. In this demonstration, you’ll see WindowsPath objects. If you’re a Unix user, you’ll have PosixPath objects instead.

04:11 In the next lesson, you’ll explore getting only files with loops and conditionals.

Become a Member to join the conversation.