2312321 发表于 2016-5-16 10:35:29

Python:打印某个路径下的所有文件

打印某个路径下的所有文件,我们可以通过find命令实现(find 路径 -type f)。下面我通过 Python 的递归来实现这个功能。
# vim print_files.py
#!/usr/bin/python

import os
import sys

def print_files(path):
    lsdir = os.listdir(path)
    dirs =
    files =
    if files:
      for f in files:
            print os.path.join(path,f)
    if dirs:
      for d in dirs:
            print_files(os.path.join(path,d))

print_files(sys.argv)


测试:
我们打印下/etc/目录下的所有目录和文件,效果如下图:
# python print_files.py /etc/


方法说明:
os.listdir:os模块的方法,打印目录里的所有文件,以列表形式存在;后面就可以使用列表重写:
os.path.isdir:os.path下的方法,返回的是布尔值,判断后边是不是一个目录。
os.path.isfile:os.path下的方法,返回的也是布尔值,判断后边是不是一个文件。
os.path.join:os.path下的方法,连接文件路径。os.path.join(path,i) :/etc/i
sys.argv:sys模块下的方法,是用来获取命令行参数的,sys.argv表示代码本身文件路径,本例:
sys.argv ------- print_files.py
sys.argv ------- path


逻辑思路:
(1)先列出路径下的所有文件
(2)过滤目录
(3)过滤文件
(4)判断目录下是否有文件,若有就打印出该文件
(5)判断目录下是否有子目录,若有就通过递归再遍历子目录下的文件或者目录。



页: [1]
查看完整版本: Python:打印某个路径下的所有文件