循环浏览文件夹中的文件

时间:2020-05-19 15:48:19

标签: python python-3.x loops directory filenames

大家好,我写的脚本有个小问题。

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(),但无法解决问题。此刻,代码总是循环使用相同的文件名。

提前感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

它之所以返回一个文件,是因为您在循环中进行了package.json { "name": "nodemon-docker-test", "version": "1.0.0", "description": "", "main": "index.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1", "start:express": "node ./index.js", "start": "nodemon" }, "author": "", "license": "ISC", "dependencies": { "express": "^4.17.1" }, "devDependencies": { "nodemon": "^1.19.2" } } Dockerfile FROM node:slim WORKDIR /app COPY package*.json ./ RUN apt-get update RUN npm install COPY . /app # -or- # COPY . . EXPOSE 1337 CMD ["npm", "start"] docker-compose.yml version: '3.1' services: node: build: . volumes: - ./:/app ports: - 1337:1337 working_dir: /app expose: - "1337"

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

array