Open In App

How to print all files within a directory using Python?

Last Updated : 23 Jan, 2024
Improve
Improve
Like Article
Like
Save
Share
Report

The OS module is one of the most popular Python modules for automating the systems calls and operations of an operating system. With a rich set of methods and an easy-to-use API, the OS module is one of the standard packages and comes pre-installed with Python.

In this article, we will learn how to print all files within a directory using Python. To do this task we are using the OS module in Python. So, let’s discuss some concepts related to that.

Print All Files Within a Directory Using Python

Below is an example by which we can understand how to print all files in a directory Python. Before moving to the examples, let’s understand the methods and modules used in the given example:

  1. os.listdir(): This method lists all the files and directories within a given directory.
  2. os.path.isfile(): This method to check if a given entity is either a file or a directory.
  3. os.startfile(): This method prints the contents of a given file.

Syntax: os.startfile(path, operation=’open’)

Parameters:

  • path – String containing the path to a given file
  • operation – A string containing one of the following ‘command verbs’
    • ‘print’ Prints the file pertaining to path
    • ‘edit’ – Opens the file in the default text-editor for editing
    • ‘properties’ – Opens the properties window of the given file
    • ‘find’ – Initiates a search starting from directory mentioned in the path
    • ‘open’ – Opens the application/file pertaining to the path. If the given file is not an executable file, its associated application is opened

Note: Aside from the above modules, you’ll also need a fully functional printer connected to your PC!

Example:

In this example, the provided script is designed to scan through all the files within a specified directory. For each identified file, the program attempts to initiate a print operation using the os.startfile() method. However, if the print operation encounters an error, such as an incompatible file type or missing associated software, the script captures and alerts the user about the issue. The line of code “time.sleep(5)” of the given script is completely optional and is just there to avoid any un-necessary glitching or overlapping of the operations in consecutive files. You can read more about the time.sleep() method.

The demo was done on a Windows 10 machine. The environment is as follows:

  • Path of the directory containing files being printed: “Local Disk (D):/Files”
  • Files in the given directory:
    • Dir A sample subdirectory
    • File_a.pdf – A sample .pdf file
    • File_b.txt – A sample .txt file
    • File_c.docx – A sample .docx file

Python




# Import libraries
import os
import time
 
# Insert the directory path in here
path = ''
 
# Extracting all the contents in the directory corresponding to path
l_files = os.listdir(path)
 
# Iterating over all the files
for file in l_files:
 
  # Instantiating the path of the file
    file_path = f'{path}\\{file}'
 
    # Checking whether the given file is a directory or not
    if os.path.isfile(file_path):
        try:
            # Printing the file pertaining to file_path
            os.startfile(file_path, 'print')
            print(f'Printing {file}')
 
            time.sleep(5)
        except:
            # Catching if any error occurs and alerting the user
            print(f'ALERT: {file} could not be printed! Please check\
            the associated softwares, or the file type.')
    else:
        print(f'ALERT: {file} is not a file, so can not be printed!')
 
print('Task finished!')


Output:

ezgifcom-resize

Video Demonstration

Note: Since os.startfile() is only available in Windows operating system, so macOS and Linux users might experience some issues while running the script given in the article.



Like Article
Suggest improvement
Previous
Next
Share your thoughts in the comments

Similar Reads