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

怎么遍历输出某路径下的所有问价和文件夹?

这个问题和,“指定一个节点,输出以这个节点作为根节点的这棵树的所有子节点”一样。

递归可以实现。

如果是叶子节点(文件)了,就输出这个叶子节点的名称,返回。

否则,输出这个节点的名称(文件夹),并以这个结点再次作为根节点,遍历输出它的所有子节点。

-- coding: utf-8 --

import os

def traverse(f):
fs = os.listdir(f)
for f1 in fs:
tmp_path = os.path.join(f,f1)
if not os.path.isdir(tmp_path):
print(‘文件: %s‘%tmp_path)
else:
print(‘文件夹:%s‘%tmp_path)
traverse(tmp_path)

path = ‘F:/source_files/python/‘
traverse(path)
有个问题需要注意的是,用 os.listdir() 这个函数,只会返回路径下的所有文件名(而这些文件名不含路径)……
所以要写成绝对路径。可以用 os.path.join 这个函数。

In [1]: import os
In [2]: os.path.join(‘a‘,‘b‘)
Out[2]: ‘a\b‘

也可以调用 os.walk 这个函数。

import os

path = ‘F:/source_files/python/‘

for fpathe,dirs,fs in os.walk(path):
for f in fs:
print(os.path.join(fpathe,f))
返回的是一个三元 tupple(dirpath, dirnames, filenames),
其中第一个为起始路径,第二个为起始路径下的文件夹, 第三个是起始路径下的文件。
dirpath 是一个 string,代表目录的路径,
dirnames 是一个 list,包含了 dirpath 下所有子目录的名字,
filenames 是一个 list,包含了非目录文件的名字,这些名字不包含路径信息。如果需要得到全路径, 需要使用 os.path.join(dirpath, name)。

当然,你也可以使用设计器的组件查找文件组件,该组件返回的是一个 list
相关帖子

原文地址:https://blog.51cto.com/14253212/2371268

时间: 2024-11-05 23:23:13

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

计算某一路径下的所有目录或是文件数量

计算某一路径下的所有目录或是文件数量,可以参考下面代码示例: 不管是计算目录或理文件,2个方法均带2个参数,前者是传入的是物理路径,第二个传的是布尔值的参数,即是说可以计算是否包含子目录. 目录: public static int DirectoryCount(string physicalPath, bool isIncludeSubDirectory) { int count = 0; if (isIncludeSubDirectory) count = Directory.GetDire

python遍历所有盘符下的图片并拷贝下来

最近在学习python,闲着无聊就试着写啦这个小的脚本,虽然有很多不足,但是还是收获不少. 该脚本的功能: ①遍历本地计算机中的所有盘符,并将名称记录下来: ②循环遍历盘符下的所有图片(当然这里可以根据自己的需求来遍历不同类型的文件),并下载. 源代码(有不足的地方请联系我,谢谢): 1 #coding=utf-8 2 import os 3 import shutil 4 5 #返回当前工作目录 6 beforedir = os.getcwd() 7 8 def dir(way): 9 pic

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.j

Java递归输出指定路径下所有文件及文件夹

package a.ab; import java.io.File; import java.io.IOException; public class AE { public static void main(String[] args) { File f=new File("D:\\DD"); new AE().fileList(f); } public void fileList(File fl){ try{ File[] fs=fl.listFiles(); for(File f

JAVA输出指定目录下的子目录和子文件

题目:给定一个目录,要求输出这个目录下面的子目录和子文件 逻辑: 先判断给定的是不是一个合法的目录,如果不是,则提示给定错误 如果是目录,那么使用File.listFile()获得这个目录下文件名的数组 循环遍历输出这个数组元素 输出名称之后,接着判断这个元素是文件还是目录 如果是目录,继续调用本方法来输出子目录 代码如下: /** * 输出指定目录下的所有子目录和子文件 * * @author DXY * */ public class HelloFile { public static vo

Java基础知识强化之IO流笔记10:File类输出指定目录下指定后缀名的文件名称案例

1. 案例: 判断F盘下是否有后缀名为.jpg的文件,如果有的话,就输出这个文件名. 2. 案例代码如下: (1)思路是:先获取所有的文件和文件夹封装的对象,然后遍历的时候,依次判断,如果满足条件就输出. 1 package com.himi.filesdemo; 2 3 import java.io.File; 4 5 6 /** 7 * 判断F盘下是否有后缀名为.jpg的文件,如果有的话,就输出这个文件名 8 * @author hebao 9 * 10 */ 11 public class

C#控制台基础 directory判断指定路径下是否存在指定的文件夹

1 探测的文件夹 2 代码 1 using System; 2 using System.Collections.Generic; 3 using System.IO; 4 using System.Linq; 5 using System.Text; 6 using System.Threading.Tasks; 7 8 namespace directory创建一个文件夹 9 { 10 class Program 11 { 12 static void Main(string[] args)

Python + logging 输出到屏幕,将log日志写入文件

原文地址 : https://www.cnblogs.com/nancyzhu/p/8551506.html 日志 日志是跟踪软件运行时所发生的事件的一种方法.软件开发者在代码中调用日志函数,表明发生了特定的事件.事件由描述性消息描述,该描述性消息可以可选地包含可变数据(即,对于事件的每次出现都潜在地不同的数据).事件还具有开发者归因于事件的重要性:重要性也可以称为级别或严重性. logging提供了一组便利的函数,用来做简单的日志.它们是 debug(). info(). warning().

Linux下从源码安装python,将python安装到任意路径下(非site-packages)

以centos7为例: 源码安装python,一般先安装一些devel的包: yum -y install xz wget gcc make gdbm-devel openssl-devel sqlite-devel zlib-devel bzip2-devel 然后下载源码 解压源码: tar -Jxf Python.x.tar.xz cd Pyhton.x ./configure 这里有一些选项,--bindir: 安装完成后which python所在的路径 --prefix是指安装pyt