我有一个 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。
我该怎么做?
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)