如何根据列值(ID、编号)将文件移动到新目录

问题描述 投票:0回答:1

我有一个 csv 文件,文件名位于 file_name 列中,站点编号位于 site_number 列中。我有一个目录,其中的文件与 file_name 列中的文件名以及扩展名(例如 .xyz)相匹配。我想根据 ID 名称和站点编号将文件名移动到三个单独的目录。

文件名 站点编号
苹果 1
葡萄 1
梨子 2
橙色 3

我的所有文件都在目录“fruit”apple.xyz、grape.xyz、pear.xyz、orange.xyz

我想根据站点编号将文件移动到三个目录,fruit_1、fruit_2 和fruit_3,我想将apple.xyz 和grape.xyz 移动到fruit_1,将pear 移动到fruit_2,将orange 移动到fruit_3。

我该怎么做?

pandas for-loop terminal directory shutil
1个回答
0
投票
import pandas as pd
from pathlib import Path

df = pd.DataFrame({
    'file_name': ['apple', 'banana', 'grape'],
    'site_number': [1, 1, 2]})

out = "/Users/my_cool_username/Downloads/so/out"
nm = "fruit"

# create the folders we need
df.apply(lambda x: Path.mkdir(Path(out, nm + "_" + str(x['site_number'])), parents=True, exist_ok=True), axis=1)

# move the folders
df.apply(lambda x: Path(x['file_name'] + '.csv').rename(Path(out, nm + "_" + str(x['site_number']), x['file_name'] + '.csv')), axis=1)
© www.soinside.com 2019 - 2024. All rights reserved.