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:
- os.listdir(): This method lists all the files and directories within a given directory.
- os.path.isfile(): This method to check if a given entity is either a file or a directory.
- 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:
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.
How to print all files within a directory using Python?
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.