plaodj 发表于 2022-10-14 20:30

python 怎么获取文件夹下所有指定类型文件

本帖最后由 plaodj 于 2022-10-14 20:45 编辑


假设 文件夹是 D:\work

在work文件夹里有 文件 与子文件夹

子文件夹里面 又有 文件 与子文件夹

。。。

现在想获取work目录里面所有.html文件(包括子文件里面的)


要怎样写这个python   特来求助网上找过了 没找到

花时间尝试 自己解决了 谢谢

def getFilst(path, filetype):
    filelist = []
    for root, subDirs, files in os.walk(path):
      for fileName in files:
            if fileName.endswith(filetype):
                filelist.append(os.path.join(root, fileName))
    return filelist

mzbqhbc 发表于 2022-10-14 20:47

用 glob

老M 发表于 2022-10-14 21:57

for遍历 + 判断文件类型

archer0258 发表于 2022-10-14 23:21

def getFilst(path, filetype):
    filelist = []
    for root, subDirs, files in os.walk(path):
      for fileName in files:
            if os.path.splitext(fileName)[-1] == filetype:
                filelist.append(os.path.join(root, fileName))
    return filelist

tl;dr 发表于 2022-10-15 07:02

bj9ye666 发表于 2022-10-15 07:48

一起学习习诶西学习一下

吾更爱你 发表于 2022-10-15 08:19

archer0258 发表于 2022-10-14 23:21
def getFilst(path, filetype):
    filelist = []
    for root, subDirs, fi ...

借楼请教下 如果一个A文件夹里有无数子文件夹 子文件夹里层级不一定

我想用python 将A文件夹里的所有文件都移动到A文件夹里 怎么弄呢

换句话说就是比如电影文件夹 里面有2011 2012 2013文件夹 里面还有电影 我想把这些电影都移动到电影文件夹里 中间没有文件夹了

木羊羽 发表于 2022-10-15 08:41

吾更爱你 发表于 2022-10-15 08:19
借楼请教下 如果一个A文件夹里有无数子文件夹 子文件夹里层级不一定

我想用python 将A文件夹里的所有 ...

# Time: 2019/10/5 15:27
import os
import shutil


def copy_file(source_path, target_path):
    try:
      os.mkdir(target_path)
    except FileExistsError:
      print('目标文件夹已存在')
    count = 1
    for i in os.walk(source_path):
      if 'Video_Export' in i:
            video_path = os.path.join(i, i)
            shutil.copy(video_path, target_path)
            print('成功复制第【%d】视频' % count)
            count += 1
    print('文件复制完成')


def move_file(source_path, target_path):
    try:
      os.mkdir(target_path)
    except FileExistsError:
      print('目标文件夹已存在')
    count = 1
    for i in os.walk(source_path):
      if 'Video_Export' in i:
            video_path = os.path.join(i, i)
            shutil.move(video_path, target_path)
            print('成功移动第【%d】视频' % count)
            count += 1
    print('文件移动完成')


def move_file_one(source_path):
      count = 1
      for i in os.walk(source_path):
            # print(start)
            try:
                if '新建文件夹' == os.path.split(i):
                  shutil.rmtree(i)
                  continue
                if 'Video_Export' in i:
                  for child in i:
                        del_file = os.path.join(i, child)
                        os.remove(del_file)
            except IndexError:
                pass

      print('删除文件(夹)完成')

      for i in os.walk(source_path):
            if 'Video_Export' in i:
                video_path = os.path.join(i, i)
                target_path = os.path.split(i)
                # print(target_path)
                shutil.move(video_path, target_path)
                print('成功移动第【%d】视频' % count)
                count += 1

      for i in os.walk(source_path):
            if 'Video_Export' in i:
                # print(start)
                shutil.rmtree(i)

      print('*****文件操作完成*****')


if __name__ == '__main__':
    # source_path = r"D:\各种文件\Actime\2020-1-22\复制\建材化学分析李宛余已翻11文本加视频\6 18李宛余已翻11"
    # target_path = r"D:\各种文件\Actime\2020-1-22\复制\建材化学分析李宛余已翻11文本加视频"
    # move_file(source_path, target_path)
    # # copy_file(source_path, target_path)

    source_path = r"D:\Impurity\Actime\12-1\12-1已完成"
    move_file_one(source_path)# 移动到上一层目录

   

chinamail 发表于 2022-10-15 10:17

木羊羽 发表于 2022-10-15 08:41
# Time: 2019/10/5 15:27
import os
import shutil


写的这么麻烦干嘛, 直接文件夹下的所有File找出来MOVE下就可以了

马了顶大 发表于 2022-10-15 11:14

吾更爱你 发表于 2022-10-15 08:19
借楼请教下 如果一个A文件夹里有无数子文件夹 子文件夹里层级不一定

我想用python 将A文件夹里的所有 ...

你这种需求用批处理解决比较好
页: [1] 2
查看完整版本: python 怎么获取文件夹下所有指定类型文件