Python使用os.listdir和os.walk获取文件路径

情况1:在一个目录下面只有文件,没有文件夹,这个时候可以使用os.listdir

在我们的桌面上有一个file目录(文件夹),里面有三个文件

file(dir)|

--|test1.txt

--|test2.txt

--|test3.txt

用下面的程序获得文件的绝对路径:

import os
path = r'C:\Users\Administrator\Desktop\file'
for filename in os.listdir(path):
print(os.path.join(path,filename))

使用os.listdir读取到一个目录下面所有的文件名,然后使用os.path.join把目录的路径和文件名结合起来,就得到了文件的绝路路径,结果如下:

C:\Users\Administrator\Desktop\file\test1.txt
C:\Users\Administrator\Desktop\file\test2.txt
C:\Users\Administrator\Desktop\file\test3.txt

情况2:递归的情况,一个目录下面既有目录也有文件,使用os.walk:

os.walk介绍:

我们在桌面上面建立一个file目录,里面的组织结构如下:

file(dir):

--|file1(dir):

--|file1_test1.txt

--|file1_test2.txt

--|file2(dir)

--|file2_test1.txt

--|file_test1.txt

--|file_test2.txt

运行一下代码:

import os
path = r'C:\Users\Administrator\Desktop\file'
for dirpath,dirnames,filenames in os.walk(path):
print(dirpath,dirnames,filenames)

输出结果如下:

C:\Users\Administrator\Desktop\file ['file1', 'file2'] ['file_test1.txt', 'file_test2 .txt']
C:\Users\Administrator\Desktop\file\file1 [] ['file1_test1.txt', 'file1_test2.txt']
C:\Users\Administrator\Desktop\file\file2 [] ['file2_test1.txt']

os.walk输入一个路径名称,以yield的方式(其实是一个生成器)返回一个三元组 dirpath, dirnames, filenames,

dirpath为目录的路径,为一个字符串。比如上面的 C:\Users\Administrator\Desktop\file和C:\Users\Administrator\Desktop\file\file1等。

dirnames列出了目录路径下面所有存在的目录的名称。比如在 C:\Users\Administrator\Desktop\file下面有两个目录:file1和file2,那么它就列出了这个目录路径下的目录名称。

filenames列出了目录路径下面所有文件的名称。同样在 C:\Users\Administrator\Desktop\file下面有两个文件file_test1.txt和file_test2 .txt,那么程序将会列出这两个文件名。

如何获得一个路径下面所有的文件路径:

import os
path = r'C:\Users\Administrator\Desktop\file'
for dirpath,dirnames,filenames in os.walk(path):
for filename in filenames:
print(os.path.join(dirpath,filename))

得到的结果如下:

C:\Users\Administrator\Desktop\file\file_test1.txt
C:\Users\Administrator\Desktop\file\file_test2 .txt
C:\Users\Administrator\Desktop\file\file1\file1_test1.txt
C:\Users\Administrator\Desktop\file\file1\file1_test2.txt
C:\Users\Administrator\Desktop\file\file2\file2_test1.txt

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • 解决python中os.listdir()函数读取文件夹下文件的乱序和排序问题

    1. os.listdir()概述 os.listdir() 方法用于返回指定的文件夹包含的文件或文件夹的名字的列表. 例如: dir ='F:/Home_01/img'#当前目录 filenames=os.listdir(dir)#filenames存储dir下的所有文件名. 注意:os.listdir()返回的文件名不一定是顺序的,也就是说结果是不固定的,如下图,则filenames[0]有可能为'22.jpg',而不是我们所希望的'11.jpg'. 解决办法: filenames=os.l

  • python的sys.path模块路径添加方式

    对于添加一个文件的路径 我用的第一个方法就是sys.path.append() 博主比较懒,就直接截图了啊 对于上级文件路径和再上一级的路径可以直接添加"..",这样到时候导入模块的时候程序能在文件的上级目录直接去查找自己写的模块 查看添加成功的方法,但是添加的时候不要像我一样的随便添加,要么上级目录的简单的添加是sys.path.append("..") 另一种是需要添加完整的文件路径的,然后就能顺利的使用模块了 print sys.path查看你添加的路径,到时

  • Python IDLE或shell中切换路径的操作

    在Python自带的编辑器IDLE中或者Python shell中不能使用cd命令,那么跳到目标路径呢. 方法是使用os包下的相关函数实现路径切换功能. import os os.getcwd() #获取当前路径 os.chdir("D:\\test") #跳到目标路径下 os.chdir('D:\\test') #单引号.双引号都可以 补充知识:Python更改IDLE默认保存路径 每次都修改保存路径还挺烦人的. 1 右键IDLE,更多,打开文件位置(开始.搜索IDLE) 2 打开文

  • Python查找不限层级Json数据中某个key或者value的路径方式

    最近项目中有一个小需求,查找json文件中某个key或者value的路径,所以就写了一个简单的小脚本,比较粗糙. #!/usr/bin/env python3 # -*- coding:utf-8 -*- ''' @author: funcups ''' from logzero import logger import ast class HandleJson(): def __init__(self, data): if data == None: logger.error('请输入json

  • Python pip install如何修改默认下载路径

    pip动不动就下载数百M的文件.这些文件默认在C:盘,那么为了节省空间需要修改这些路径: 打开cmd命令窗口.输入: python -m site C:\Users\hewei>python -m site sys.path = [ 'C:\\Users\\xxx', 'D:\\Program Files\\Python37\\python37.zip', 'D:\\Program Files\\Python37\\DLLs', 'D:\\Program Files\\Python37\\lib

  • python使用os.listdir和os.walk获得文件的路径的方法

    本文介绍了python使用os.listdir和os.walk获得文件的路径的方法,分享给大家.具体如下: os.listdir() 方法用于返回指定的文件夹包含的文件或文件夹的名字的列表.这个列表以字母顺序. 它不包括 '.' 和'..' 即使它在文件夹中. os.walk() 方法用于通过在目录树种游走输出在目录中的文件名,向上或者向下. 情况1:在一个目录下面只有文件,没有文件夹,这个时候可以使用os.listdir 在我们的桌面上有一个file目录(文件夹),里面有三个文件 file(d

  • Python使用os.listdir()和os.walk()获取文件路径与文件下所有目录的方法

    在python3.6版本中去掉了os.path.walk()函数 os.walk() 函数声明:walk(top,topdown=True,oneerror=None) 1.参数top表示需要遍历的目录树的路径 2.参数农户topdown默认是"True",表示首先返回根目录树下的文件,然后,再遍历目录树的子目录.topdown的值为"False",则表示先遍历目录树的子目录,返回子目录下的文件,最后返回根目录下的文件 3.参数oneerror的默认值是"

  • python os.listdir按文件存取时间顺序列出目录的实例

    如下所示: import os DIR = "/home/serho/workspace/lisp" def compare(x, y): stat_x = os.stat(DIR + "/" + x) stat_y = os.stat(DIR + "/" + y) if stat_x.st_ctime < stat_y.st_ctime: return -1 elif stat_x.st_ctime > stat_y.st_ctim

  • Python使用os.listdir和os.walk获取文件路径

    情况1:在一个目录下面只有文件,没有文件夹,这个时候可以使用os.listdir 在我们的桌面上有一个file目录(文件夹),里面有三个文件 file(dir)| --|test1.txt --|test2.txt --|test3.txt 用下面的程序获得文件的绝对路径: import os path = r'C:\Users\Administrator\Desktop\file' for filename in os.listdir(path): print(os.path.join(pat

  • Python os.listdir与os.walk实现获取路径详解

    目录 1.os.listdir 2.os.walk 1.os.listdir 使用情况:在一个目录下面只有文件,没有文件夹,这个时候可以使用os.listdir: 例如:d:\listdir文件夹下有三个文件(text1.txt.test2.txt.test3.txt),获得文件的绝对路径: import os path = r'd:\listdir' for filename in os.listdir(path): #目录的路径和文件名拼接起来,得到了文件的绝路路径 print(os.pat

  • Python如何获取文件路径/目录

    一.获取文件路径实现 1.1 获取当前文件路径 import os current_file_path = __file__ print(f"current_file_path: {current_file_path}") __file__变量其实有个问题,当文件被是被调用文件时__file__总是文件的绝对路径:但当文件是直接被执行的文件时,__file__并不总是文件的绝对路径,而是你执行该文件时给python传的路径.比如你是python xxx/yyy.py形式执行的,那么此时

  • python获取文件路径、文件名、后缀名的实例

    实例如下所示: #########start 获取文件路径.文件名.后缀名############ def jwkj_get_filePath_fileName_fileExt(filename): (filepath,tempfilename) = os.path.split(filename); (shotname,extension) = os.path.splitext(tempfilename); return filepath,shotname,extension #########

  • C#中Winform获取文件路径的方法实例小结

    本文实例讲述了C#中Winform获取文件路径的方法.分享给大家供大家参考.具体如下: 获取文件名方法: 用System.IO.Path.GetFileName和System.IO.Path.GetFileNameWithoutExtension(无扩展名)的方法 获取文件路径方法: //获取当前进程的完整路径,包含文件名(进程名). string str = this.GetType().Assembly.Location; result: X:\xxx\xxx\xxx.exe //(.exe

  • Android如何通过URI获取文件路径示例代码

    前言 最近在工作的过程中,遇到不同 Android 版本下 URI 采用不同方式来获取文件路径的问题. 因为需求的原因,要求拍照上传或者从相册中选择图片上传,而且图片是需要经过压缩的,大小不能超过2M. 很快,拍照的这部分就搞定了.那么相册中选择图片的也是一样的道理,应该也是轻松解决了. 至于选择图片的代码,如下所示: intent = new Intent(Intent.ACTION_GET_CONTENT); intent.addCategory(Intent.CATEGORY_OPENAB

  • 完美解决Java获取文件路径出现乱码的问题

    在Java中有时获取文件路径,获取的路径中存在中文或者是空格的时候,路径出现乱码.这个问题困扰了我好久,用过各种的转码都无济于事.在后来终于解决了,在这里和大家分享一下,其实也就是加一行代码的问题. 我在项目的是使用 String path = this.getClass().getClassLoader().getResource("/").getPath().substring(1); 这样来获得当前类的文件路径的.但是这样得到的是乱码.后来经过跟踪 在this.getClass(

  • Java获取文件路径常用方法解析

    1. 前言 Java 开发中我们经常要获取文件的路径,比如读取配置文件等等.今天我们就关于文件的路径和如何读取文件简单地探讨一下. 2. 文件的路径 文件的路径通常有 相对路径 与 绝对路径. 2.1 相对路径 以当前文件为基准进行一级级目录指向被引用的资源文件.在 Java 代码中以当前运行的代码所在的位置为参照位置,只要被引用的文件相对于引用的文件的位置不变就可以被读取到.一旦改变相对位置就无法被读取到. 2.2 绝对路径 文件在文件系统中真正存在的路径,是指从硬盘的根目录(Windows为

随机推荐