大家好,我写的脚本有个小问题。
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()
,但无法解决问题。此刻,代码总是循环使用相同的文件名。
提前感谢您的帮助!
答案 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