逐个循环浏览文件夹中的文件

2024-09-27 07:28:17 发布

您现在位置:Python中文网/ 问答频道 /正文

大家好,我写的剧本有点小问题

import os
import glob

def loop_dir():
   for file in glob.glob('/Users/++++/+++/test/*.mp4'):
       return str(file).split('/')[-1]


def mk_dir():
    i=1
    keepGoing=True
    while keepGoing:
      path = "Folder_{}/".format(i)
      if not os.path.exists(path):
        os.makedirs(os.path.dirname("Folder_{}/".format(i)), exist_ok=False)
        keepGoing = False
      i += 1
    return str(path)

with os.scandir('/Users/++++/++++/test') as it:
        for vid in it:
            os.system('python3 video2images.py \.    #here goes the filename
                        -i /Users/++++/++++/test/' + loop_dir() + ' \
                        -o /Users/++++/++++/' + mk_dir() + ' \
                        --sample_interval 2 \
                        --max_frames 100')

我想在这里做的是让第一个函数逐个返回目录中的文件名,以便将它们插入底部的最后一个块中。 我尝试了几个选项os.listdir() os.scandir() glob.iglob(),但无法解决我的问题。此时,代码总是使用相同的文件名循环

提前感谢您的帮助


Tags: pathintestimportloopforreturnos
1条回答
网友
1楼 · 发布于 2024-09-27 07:28:17

它返回一个文件的原因是因为你在循环中生成了logical error

我建议您将找到的文件附加到array,然后返回数组。然后可以从阵列访问文件

def loop_dir():
   files=[]
   for file in glob.glob('/Users/++++/+++/test/*.mp4'):
       files.append(str(file).split('/')[-1])
   return files

相关问题 更多 >

    热门问题