当前位置:   article > 正文

python遍历文件夹的几种方法_python 遍历文件夹

python 遍历文件夹

遍历目录显示为绝对路径

方法1

遍历目录下的所有文件,包含子目录 ,显示为绝对路径

import os

# 主文件夹路径
root_path = path = r'e:\\'

for i in os.walk(root_path):
    for j in i[2]:
        # i[0]是当前文件夹的绝对路径,j是文件名
        path = os.path.join(i[0], j)
        print(path)    
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
'
运行

显示效果:

e:\\deskfile\zhuomian2022.4.2\jiying.mp4
e:\\deskfile\zhuomian2022.4.2\新项目.mp4
e:\\Downloads\录制_2024_03_15_20_51_36_346.mp4
e:\\FFmpeg 最最强大的视频工具-基础操作.mp4
  • 1
  • 2
  • 3
  • 4

原理可以参考: 查看

方法2

python遍历文件夹下的视频文件,包含子目录 ,显示为绝对路径


import os
from os import path

def scanner_file(url):
	# 查看指定目录下的文件
	files = os.listdir(url)
	# print(files)  
	for i in files:  
		# real_path = url + "\\" + i  
		# real_path = url + os.sep + i  
		real_path = path.join(url, i)  
		if path.isfile(real_path):  
			s = real_path.split(".")  
			ss = s[len(s) -1]  
			if ss == "mp4" or ss == "avi" or ss == "wmv" or ss == "vm4":  
				print(real_path)  
		elif path.isdir(real_path):  
			# 递归输出文件夹下的文件  
			scanner_file(real_path)  
		else:  
			print("其他情况")  
			pass  

scanner_file(r'e:\\')  

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26

显示效果:

e:\\deskfile\zhuomian2022.4.2\jiying.mp4  
e:\\deskfile\zhuomian2022.4.2\新项目.mp4  
e:\\Downloads\录制_2024_03_15_20_51_36_346.mp4  
e:\\FFmpeg 最最强大的视频工具-基础操作.mp4  
  • 1
  • 2
  • 3
  • 4

遍历文件显示文件名

遍历视频文件(不含子目录)

要求:遍历当前文件夹,不包含子目录,要求过滤出视频文件,并且只需要文件名,不包含绝对路径

import os

def video_scan(pathss):

    """
         此函数是遍历视频文件,请输入您的路径,遍历出的结果包含子目录,并生成一个list
    """
    list_vido_any = []
    # 列表中的字母须小写
    kzhan_list = ["mp4", "avi", "wmv", "rmvb", "mov", "mkv"]

    for vido in os.walk(pathss):
        for j in vido[2]:
            # 遍历所得的所有文件,包含子目录的文件,i[0]是当前文件夹的绝对路径,j是文件名
            path = os.path.join(vido[0], j)

            # 以点为分隔符,分割文件名和扩展名
            # s为路径+文件名,不含扩展名
            s = path.split(".")
            # ss为扩展名
            ss = s[len(s) - 1]

            for kzhan in kzhan_list:

                # 这里有个转大写的操作
                if ss == kzhan or ss == kzhan.upper():
                    list_vido_any.append(path)

    return list_vido_any


for video in video_scan(r"F:\file2021"):
    print(video)

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
'
运行

结果显示:

Audacity的6个简单好用的功能-录音、放大、降噪、改变节奏、改变音高、改变速度.mp4 
FFmpeg 最最强大的视频工具-基础操作.mp4 
十分钟理解OSPF路由协议.mp4 
忘记Linux密码.mp4 
苏虹中路回忆录.mp4 
金鸡湖vlog001.mp4 
金鸡湖游玩001.mp4 
预告.mp4 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

遍历视频文件,包含子目录(完美)

要求:遍历当前文件夹,不包含子目录,要求过滤出视频文件,并且只需要文件名,不包含绝对路径

import os

# 当前目录所有文件的序列,包含子目录

def file_name_list(url):
    """
        遍历dir路径下,所有文件.含子目录,最终结果只显示文件名
    """
    files_list = []
    for parent, dirnames, filenames in os.walk(url):
        for filename in filenames:
            # print(filename)
            # file_path = os.path.join(parent, filename)    #显示绝对路径
            if filename not in files_list:  # 这里有个去重复的判断
                files_list.append(filename)
    # print(files_list)        #所有文件的绝对路径
    return files_list

# -----------------------------------------------------------------

filesss=file_name_list(r'F:\AV2021\002.上班族-OL系列')

for files in filesss:
    s = files.split(".")
    ss = s[len(s) - 1]
    if (ss == "mp4" or ss == "MP4" or
            ss == "wmv" or ss == "WMV" or
            ss == "avi" or ss == "AVI" or
            ss == "rmvb" or ss == "rmvb" or
            ss == "rm" or ss == "RM" or
            ss == "mov" or ss == "MOV" or
            ss == "ts" or ss == "TS" or
            ss == "vob" or ss == "VOB" or
            ss == "flv" or ss == "FLV" or
            ss == "m4v" or ss == "M4V" or
            ss == "mkv" or ss == "MKV"):
        print(files)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
'
运行
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/838463
推荐阅读
相关标签
  

闽ICP备14008679号