我怎样才能制作目录?
Posted
技术标签:
【中文标题】我怎样才能制作目录?【英文标题】:how can I make directory? 【发布时间】:2021-10-10 20:05:05 【问题描述】:给定的代码向我显示错误; 我正在根据不同的类及其视频在文件夹下的文件夹下制作文件夹。 train is 文件夹包含不同的类文件夹,每个类文件夹都有特定的视频。 train 的目录是这样的;
---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'
我的目录是;
【问题讨论】:
我使用 os.makedirs() 解决了它 我不知道为什么 os.mkdir() 不起作用,我前一天使用的是相同的代码,它正在使用 os.mkdir() 命令。 这能回答你的问题吗? How can I create directories recursively? 【参考方案1】:您可以使用标准库中的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)
【讨论】:
以上是关于我怎样才能制作目录?的主要内容,如果未能解决你的问题,请参考以下文章