我怎样才能制作目录?

how can I make directory?

给定的代码显示了错误; 我正在根据不同的 classes 及其视频在文件夹下制作文件夹。 train 是包含不同 class 文件夹的文件夹,每个 class 文件夹都有特定的视频。火车的目录是这样的;

---train

  ----class1

         ----video11.mp4
         ----video12.mp4
             ...
  ----class2
         ----video21.mp4
         ----video22.mp4
             ...
      ...

我想像这样创建以上目录的文件夹;

---train_data

  ----class1
         ----video11
         ----video12
             ...
  ----class2
         ----video21
         ----video22
             ...
      ...
    

我写了这段代码,但是显示错误,我不知道为什么os.mkdir在这里不起作用

import cv2
import os
from tqdm import tqdm

for data_dir, dest_dir in ["train", 'train_data'],["val", 'val_data']:
    for classes in tqdm(os.listdir(data_dir)):
        for videos in os.listdir(data_dir + '/' + classes):
            print(videos)
            print(classes)
            print(dest_dir)
            if not os.path.exists(dest_dir + '/' + classes + '/' + videos):
                os.mkdir(dest_dir + '/' + classes + '/' + videos)

错误:

v_ApplyEyeMakeup_g01_c01.avi
ApplyEyeMakeup
train_data
  0%|          | 0/101 [00:00<?, ?it/s]
Traceback (most recent call last):
  File "F:/Research/Action Recognition/Mine/data.py", line 12, in <module>
    os.mkdir(dest_dir + '/' + classes + '/' + videos)
FileNotFoundError: [WinError 3] The system cannot find the path specified: 'train_data/ApplyEyeMakeup/v_ApplyEyeMakeup_g01_c01.avi'

我的目录是;

您可以使用标准库中的 pathlib 模块:

import pathlib
import itertools

extensions = ['mp4', 'avi', 'mkv']

videos = itertools.chain.from_iterable([root_dir.glob(f'**/*.{ext}')
                                            for ext in extensions])

for video in videos:
    (video.parent / video.stem).mkdir(exist_ok=True)

您可以使用 OS 标准库中的 makedir 模块:

os.makedir() 

而不是

os.mkdir()

因为 os 更改了一些命令。