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

打印某个路径下的所有文件,我们可以通过find命令实现(find 路径 -type f)。下面我通过 Python 的递归来实现这个功能。

[[email protected] ~]# vim print_files.py



#!/usr/bin/python

import os

import sys

def print_files(path):

lsdir = os.listdir(path)

dirs = [i for i in lsdir if os.path.isdir(os.path.join(path,i))]

files = [i for i in lsdir if os.path.isfile(os.path.join(path,i))]

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[1])



测试:

我们打印下/etc/目录下的所有目录和文件,效果如下图:

[[email protected] ~]# python print_files.py /etc/

方法说明:

os.listdir:os模块的方法,打印目录里的所有文件,以列表形式存在;后面就可以使用列表重写:[i for i in lsdir]

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[0]表示代码本身文件路径,本例:

sys.argv[0] ------- print_files.py

sys.argv[1] ------- path

逻辑思路:

(1)先列出路径下的所有文件

(2)过滤目录

(3)过滤文件

(4)判断目录下是否有文件,若有就打印出该文件

(5)判断目录下是否有子目录,若有就通过递归再遍历子目录下的文件或者目录。

时间: 2024-10-26 10:12:53

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

unity3d 依据指定的Assets下的目录路径 返回这个路径下的全部文件名称

using UnityEngine; using System.Collections; using System.Collections.Generic; using System.IO; <pre class="csharp" name="code"> public static List<string> nameArray = new List<string>(); /// <summary> /// 依据指定的

C#递归读取指定路径下的所有文件并保存至TreeView

1.代码如下: /// <summary> /// 递归读取指定路径下的所有文件信息 /// </summary> /// <param name="path"></param> /// <param name="node"></param> private void DIGuiGetFile(string path, TreeNode node) { if (!Directory.Exists

Java 递归获取一个路径下的所有文件,文件夹名称

package com.readfile; import java.io.File; public class GetAllFiles { public static void main(String[] args) { //路径 这里写一个路径进去 String path="F:\\QQ文档"; //调用方法 getFiles(path); } /** * 递归获取某路径下的所有文件,文件夹,并输出 */ public static void getFiles(String path

WPF 利用Process.Start()方法启动指定路径下的exe文件并传递参数接收参数

WPF 利用Process.Start()方法启动指定路径下的exe文件并传递参数接收参数 在开发中遇到这样一个需求:WPF程序A启动WPF程序B并且传递参数,WPF程序B接收参数并处理. 如何来实现这样的需求呢,网络上已经有很多的文章描述这个问题,在这里做个记录. 首先通过如下代码启动WPF客户端B: private void ActionStartClientExcute() { var address = "exe位置"; Process process = new Proces

Python:遍历输出某路径下的所有文件和文件夹

怎么遍历输出某路径下的所有问价和文件夹? 这个问题和,"指定一个节点,输出以这个节点作为根节点的这棵树的所有子节点"一样. 递归可以实现. 如果是叶子节点(文件)了,就输出这个叶子节点的名称,返回. 否则,输出这个节点的名称(文件夹),并以这个结点再次作为根节点,遍历输出它的所有子节点. -- coding: utf-8 -- import os def traverse(f):fs = os.listdir(f)for f1 in fs:tmp_path = os.path.join

Python计算一个目录下的所有文件的md5值,在Linux系统下面

实现代码如下: #!/usr/bin/python #*-*coding:utf8*-* import os import sys import hashlib def md5sum(data):     with open(data, "rb") as f:         md5 = hashlib.md5()     #赋空值         for i in f.read(4096):    #防止遇到大文件打开太占用内存,所以一次打开4096字节             if

python删除指定目录下的指定文件和文件夹

具体代码: #coding:utf-8import os,sys,platformclass RemoveTagFile(object): path=None def removeFile(self,path,remove_list,retain_list): #path后面要跟/ self.path=path system_test=platform.system() if(system_test=='Windows'): path_last=self.path[-1] if(path_las

python获取工程路径下的文件方法

如下可以获取工程路径与文件存放的位置 import time, os, random import subprocess import re PATH = lambda p: os.path.abspath(os.path.join(os.path.dirname(__file__), p)) # 获取当前文件所在的路径 cur_path = os.path.dirname(os.path.realpath(__file__)) print(cur_path) # 获取工程所在的路径,如果加入目

学习日记19、获取某个文件路径下所有的文件信息

public JsonResult GetView(string suoshu) { string url = ""; Dictionary<string,string> strlist = new Dictionary<string,string>(); if (suoshu == "zf") { url = Server.MapPath("~/Areas/X/Views/Mesf");//返回物理路径 } else i