python学习:获取指定目录下所有文件名os.walk和os.listdir

1.os.walk

  • 返回指定路径下所有文件和子文件夹中所有文件列表
  • 其中文件夹下路径如下:
    在这里插入图片描述
import os
def file_name_walk(file_dir):
    for root, dirs, files in os.walk(file_dir):
        print("root", root)  # 当前目录路径
        print("dirs", dirs)  # 当前路径下所有子目录
        print("files", files)  # 当前路径下所有非目录子文件

file_name_walk("./")
# root ./
# dirs ['test']
# files ['200-2000(1).txt', '200-2000(2).txt', '200-2000(3).txt', 'getFileName.py']
# root ./test
# dirs []
# files ['test.txt']
  • 对于os.walk会遍历指定目录下的所有子文件夹和子文件夹中的所有文件,例如此处的root文件夹中有test文件夹和'200-2000(1).txt', '200-2000(2).txt', '200-2000(3).txt', 'getFileName.py'等文件
  • 然后遍历子文件夹test,发现其中并没有子文件夹,所以dirs=[],但是子文件夹test中有文本文件test.txt.所以有['test.txt']的值

2.os.listdir()

返回指定路径下所有的文件和文件夹列表,但是子目录下文件不遍历。

def file_name_listdir(file_dir):
    for files in os.listdir(file_dir):  # 不仅仅是文件,当前目录下的文件夹也会被认为遍历到
        print("files", files)

file_name_listdir("./")
# files 200-2000(1).txt
# files 200-2000(2).txt
# files 200-2000(3).txt
# files getFileName.py
# files test

注意:使用os.listdir函数不仅是文件,文件夹也会被遍历到,例如test即是一个文件夹。

3.全局变量保存

如果想要保存文件名可以使用全局变量或者局部变量进行保存。
如果使用全局变量,则每次调用函数的信息都存在全局列表中

Files_Global = []

def file_name_listdir_global(file_dir):
    for files in os.listdir(file_dir):
        Files_Global.append(files)

file_name_listdir_global(".")
file_name_listdir_global("./test")
# 最终的结果都会被保存到全局列表变量中
print("Files_Global: ", Files_Global)
# Files_Global:  ['200-2000(1).txt', '200-2000(2).txt', '200-2000(3).txt', 'getFileName.py', 'test', 'test.txt']

此处使用os.listdir函数将遍历得到的结果都保存到全局变量Files_Global中,则其中包含了遍历"."当前文件夹和"./test"当前文件夹中的test文件夹中的所有信息

4.局部变量和函数返回

局部变量,只保存本次函数调用得到的结果,通过返回值保存
建议使用局部变量加返回值的方式

'''
学习中遇到问题没人解答?小编创建了一个Python学习交流群:711312441
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
def file_name_listdir_local(file_dir):
    files_local = []
    for files in os.listdir(file_dir):
        files_local.append(files)
    return files_local

file_local_1 = file_name_listdir_local(".")
file_local_2 = file_name_listdir_local("./test")
print("file_local_1:", file_local_1)  # 当前目录下文件
print("file_local_2", file_local_2)  # 子目录test下文件
# file_local_1: ['200-2000(1).txt', '200-2000(2).txt', '200-2000(3).txt', 'getFileName.py', 'test']
# file_local_2 ['test.txt']

5.通过os.path.splitext指定文件类型

选取特定文件类型
选取文件名中所有txt后缀名的文本文件

def file_name(file_dir):
    File_Name=[]
    for files in os.listdir(file_dir):
        if os.path.splitext(files)[1] == '.txt':
            File_Name.append(files)
    return File_Name
txt_file_name=file_name(".")
print("txt_file_name",txt_file_name)

# txt_file_name ['200-2000(1).txt', '200-2000(2).txt', '200-2000(3).txt']

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python学习:获取指定目录下所有文件名os.walk和os.listdir - Python技术站

(0)
上一篇 2023年4月2日 下午4:44
下一篇 2023年4月2日 下午4:44

相关文章

  • 关于Python封装函数的几道练习题

    1.封装函数,可以判断一个数字是否为偶数 def func(n): if n%2==0: print(“%d是偶数”%n) else: print(“%d是奇数”%n) func(11) # 11是奇数 2.封装函数,可以实现1-n之间所有偶数的打印 def func(n): for i in range(1,n+1): if i%2==0: print(i…

    Python开发 2023年4月2日
    00
  • Python条件语句和循环语句简单使用方法

    1.Python条件语句 Python条件语句是通过一条或多条语句的执行结果(True或者False)来决定执行的代码块。 可以通过下图来简单了解条件语句的执行过程:Python程序语言指定任何非0和非空(null)值为true,0 或者 null为false。 Python 编程中 if 语句用于控制程序的执行,基本形式为: if 判断条件: 执行语句………

    Python开发 2023年4月2日
    00
  • 5个非常有意思的python代码,谁运行谁知道

    Python 能做很多无聊,但有意思的事情,例如接下来的一些案例。 Python 整蛊程序 以下程序,不要发代码,要不实现不了你整蛊的目的。 要打包成一个 exe 程序,发给朋友才有意思。 使用 pip install pyinstaller。 打包命令如下: pyinstaller -F 文件名.py 过程中如果出现 BUG(一般是编码错误),点击导航查看…

    Python开发 2023年4月2日
    00
  • Python生成随机数的一个标准库-random

    1.介绍 Random库Python中用于生成随机数的一个标准库。计算机没有办法产生真正的随机数,但它可以产生伪随机数。 伪随机数是计算机按照一定的运算规则产生的一些数据,只不过这些数据表现为随机数的形式。计算机中采用梅森旋转算法生成为随机序列,序列中的每一个元素就是伪随机数,由于计算机不能产生真正的随机数,所以伪随机数也就被称为随机数。 Random库包含…

    python 2023年4月27日
    00
  • Python学习:迭代器与生成器

    1.生成器 如果创建一个有很多元素的列表,但是只需要访问前几个元素,后面的元素占着的空间就白白浪费了 在循环的过程中不断推算出后续的元素呢?这样就不必创建完整的list,从而节省大量的空间。 在Python中,这种一边循环一边计算的机制,称为生成器:generator。 要创建一个generator,有很多种方法 第一种方法很简单,只要把一个列表生成式的[]…

    Python开发 2023年4月2日
    00
  • Python 函数递归教程

    1.什么是函数递归 函数的嵌套调用:一个函数里面又写了一个函数。 函数的递归调用:他是一种特殊的嵌套调用,他也是在函数里面调用函数,但是他在函数体内调用的函数时他自己本身。 如果递归函数不断的在函数体内调用函数自己本身,如果我们不给终止条件来结束程序运行的话,程序就会进入死循环,那这个时候程序运行将会报错,因此我们应该给递归函数一个明确的结束条件。 def …

    Python开发 2023年3月31日
    00
  • Python教程:用__new__ 创建单例模式

    1.用 __new__方法 class Singleton(object): def __new__(cls): if not hasattr(cls,’_instance’): cls._instance=super(Singleton,cls).__new__(cls) # cls.__instance = object.__new__(cls) #这样…

    Python开发 2023年4月2日
    00
  • Python教程:IO

    在磁盘上读写文件的功能都是由操作系统提供的,现代操作系统不允许普通的程序直接操作磁盘,所以,读写文件就是请求操作系统打开一个文件对象(通常称为文件描述符),然后,通过操作系统提供的接口从这个文件对象中读取数据(读文件),或者把数据写入这个文件对象(写文件)。 1.读文件 要以读文件的模式打开一个文件对象,使用Python内置的open()函数,传入文件名和标…

    Python开发 2023年3月31日
    00
合作推广
合作推广
分享本页
返回顶部