查找一个目录下所有视频文件

本文介绍如何在指定的目录及其子目录中查找并列出所有的视频文件,包括使用编程语言如Python的实现方法和常见命令行工具的操作步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

# -*- coding: utf-8 -*-
import os.path
import os

def getcataloglist():
    list =os.listdir()
    L=[]
    for file in list:
        if os.path.isdir(file):
            L.append(file)
    return L

def search(catalog):
    os.chdir(catalog)
    list =os.listdir()
    destination=[]
    for eachfile in list:
        eachfile=os.path.join(catalog,eachfile)
        (donotcare,extension)=os.path.splitext(eachfile)
        if extension=='.avi' or extension=='.rmvb' or extension=='.mp4':
            destination.append(eachfile)
    foldernamelist=getcataloglist()
    for eachfolder in foldernamelist:
        eachfolder=os.path.join(catalog,eachfolder)
        destination+= search(eachfolder)
    return destination
catalog= input()

list =search(catalog)
print(list)
f= open('videolist.txt','w')
print(os.getcwd())
f.writelines(list)

f.close()

# 综合应用了文件夹的递归以及输出到文件

# 标准答案

import os

def search_file(start_dir, target) :
    os.chdir(start_dir)
    
    for each_file in os.listdir(os.curdir) :
        ext = os.path.splitext(each_file)[1]
        if ext in target :
            vedio_list.append(os.getcwd() + os.sep + each_file + os.linesep) # 使用os.sep是程序更标准
        if os.path.isdir(each_file) :
            search_file(each_file, target) # 递归调用
            os.chdir(os.pardir) # 递归调用后切记返回上一层目录

start_dir = input('请输入待查找的初始目录:')
program_dir = os.getcwd()

target = ['.mp4', '.avi', '.rmvb']
vedio_list = []

search_file(start_dir, target)

f = open(program_dir + os.sep + 'vedioList.txt', 'w')
f.writelines(vedio_list)
f.close()

1.返回上一层目录较join更简洁

2.ext in target 运算

 3.splitext【1】的用法

 4.os.curdir更标准

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值