根据 csv 文件中的条件创建子目录
Making a subdirectories based on condition in csv file
我有一个包含 .jpg 图片的目录。我还有一个 csv 文件,其中包含 .jpg 图像的文件名和一个条件,比如 1 或 0。
我想做的是根据条件创建两个子目录,并将文件相应地移动到子目录中。 N.B 我需要在 Python 中执行此操作。
为了让自己清楚我的目录结构如下:
--目录
File1.jpg
File2.jpg
File3.jpg
File4.jpg\
我的csv是这样的:
Filenames
cond
File1.jpg
1
File2.jpg
0
File3.jpg
1
File4.jpg
0
而我想要的是:
-目录
-- 子目录 1
--- File1.jpg
--- File3.jpg
-- 子目录 0
--- File2.jpg
--- File4.jpg
向所有认为我只是在寻找免费编码的人道歉,我在 post 一个有用的工作示例的错误道路上走得太远了。无论如何,这是对我有用的代码。注意我在 运行 代码之前手动创建了两个子目录文件夹。
rootdir = '/directory'
output_path = '/directory/'
csv = 'labels.csv'
no_ds = pd.read_csv(csv)
for name in no_ds['File_Name'][no_ds['Cond']==1]:
os.rename(rootdir+'/'+name, rootdir+'/Subdir1/'+name)
for name in no_ds['File_Name'][no_ds['Cond']==0]:
os.rename(rootdir+'/'+name, rootdir+'/Subdir0/'+name)
这是您的替代版本:
import csv
from pathlib import Path
base_dir = Path("directory")
with open("files.csv", "r") as file:
reader = csv.reader(file)
next(reader) # Skip headers
for filename, sub_dir in reader:
sub_dir = base_dir / f"Subdir{sub_dir}"
sub_dir.mkdir(exist_ok=True)
(base_dir / filename).rename(sub_dir / filename)
我假设 csv 文件被命名为 files.csv
并且看起来像
Filenames,cond
File1.jpg,1
File2.jpg,0
File3.jpg,1
File4.jpg,0
我有一个包含 .jpg 图片的目录。我还有一个 csv 文件,其中包含 .jpg 图像的文件名和一个条件,比如 1 或 0。
我想做的是根据条件创建两个子目录,并将文件相应地移动到子目录中。 N.B 我需要在 Python 中执行此操作。
为了让自己清楚我的目录结构如下:
--目录
File1.jpg
File2.jpg
File3.jpg
File4.jpg\
我的csv是这样的:
Filenames | cond |
---|---|
File1.jpg | 1 |
File2.jpg | 0 |
File3.jpg | 1 |
File4.jpg | 0 |
而我想要的是:
-目录
-- 子目录 1
--- File1.jpg
--- File3.jpg
-- 子目录 0
--- File2.jpg
--- File4.jpg
向所有认为我只是在寻找免费编码的人道歉,我在 post 一个有用的工作示例的错误道路上走得太远了。无论如何,这是对我有用的代码。注意我在 运行 代码之前手动创建了两个子目录文件夹。
rootdir = '/directory'
output_path = '/directory/'
csv = 'labels.csv'
no_ds = pd.read_csv(csv)
for name in no_ds['File_Name'][no_ds['Cond']==1]:
os.rename(rootdir+'/'+name, rootdir+'/Subdir1/'+name)
for name in no_ds['File_Name'][no_ds['Cond']==0]:
os.rename(rootdir+'/'+name, rootdir+'/Subdir0/'+name)
这是您的替代版本:
import csv
from pathlib import Path
base_dir = Path("directory")
with open("files.csv", "r") as file:
reader = csv.reader(file)
next(reader) # Skip headers
for filename, sub_dir in reader:
sub_dir = base_dir / f"Subdir{sub_dir}"
sub_dir.mkdir(exist_ok=True)
(base_dir / filename).rename(sub_dir / filename)
我假设 csv 文件被命名为 files.csv
并且看起来像
Filenames,cond
File1.jpg,1
File2.jpg,0
File3.jpg,1
File4.jpg,0