📌  相关文章
📜  如何使用Python打印目录中的所有文件?

📅  最后修改于: 2022-05-13 01:55:33.029000             🧑  作者: Mango

如何使用Python打印目录中的所有文件?

在本文中,我们将学习“如何使用Python打印目录中的所有文件?”。为了完成这个任务,我们使用Python中的 os 模块。所以,让我们讨论一些与此相关的概念。

os 模块是最流行的Python模块之一,用于自动化操作系统的系统调用和操作。 os 模块具有丰富的方法集和易于使用的 API,是标准包之一,并预装了Python。

对于本文,将需要 os 模块中的以下方法:

1. os.startfile():该方法打印给定文件的内容。

2. os.listdir():此方法列出给定目录中的所有文件和目录。有关此方法的更详细介绍,包括示例和用例,请参阅此处。

3. os.path.isfile() :由于我们只能打印给定文件夹的子目录,我们将使用此方法检查给定实体是文件还是目录。有关此方法的更详细介绍,包括示例和用例,请参阅此处。

注意:除了上述模块,您还需要一台连接到 PC 的全功能打印机!

执行

给定脚本的代码行“time.sleep(5)”是完全可选的,只是为了避免连续文件中的操作出现任何不必要的故障或重叠。有关 time.sleep() 方法的更多信息,请参阅此处。

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}')
 
            # Sleeping the program for 5 seconds so as to account the
      # steady processing of the print operation.
            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!')


输出:

该演示是在 Windows 10 机器上完成的。环境如下:

  • 包含正在打印的文件的目录路径:“Local Disk (D):/Files”
  • 给定目录中的文件:
    • Dir 示例子目录
    • File_a.pdf –示例 .pdf 文件
    • File_b.txt –一个示例 .txt 文件
    • File_c.docx –一个示例 .docx 文件

注意:由于 os.startfile() 仅在 Windows 操作系统中可用,因此 macOS 和 Linux 用户在运行本文给出的脚本时可能会遇到一些问题。