私はこのようなデータを持っています。特定の条件を持つ特定のファイルを検索し、別のフォルダ内のすべてのファイルをコピーするpython
id record_id Type
2001 1 A
2002 2 B
2002 3 B
2004 4 A
2004 5 A
2005 6 C
2006 7 A
2007 8 A
上記のデータはデータフレーム内にあります。
私はこのようなフォルダがあります。
E:/Files/Data/2001/1/1.jpg
E:/Files/Data/2002/2/1.jpg
E:/Files/Data/2002/3/2.jpg
E:/Files/Data/2004/4/1.jpg
E:/Files/Data/2004/5/2.jpg
E:/Files/Data/2005/6/1.jpg
E:/Files/Data/2006/7/1.jpg
を今私が欲しいものです:
私は1つのフォルダにタイプAのすべての画像を載せていきたいと思います。
私はrecord_idを手元に持っており、サブフォルダ(../ 1/1.jpg)という名前の特定のrecord_idを持つフォルダを持っています。したがって、タイプAのすべてのイメージを1つのフォルダにコピーするには、別のフォルダなどに保存されます。
各ファイルの拡張子は次のようにする必要があります:
タイプのために:
.../A/A_ID(すなわち/A/A_2001.jpg,../A/A_2004.jpg
.../B/B_ID(すなわち../B/B_2002.jpg,../B/B_2002_1.jpg)
私はそれを行うにはどうすればよい:Bタイプ用)
Python?
これは私がこれまで試したものです:
import os
import pandas as pd
rootdir = 'E:Files/user_data'
output_path="E:/Files/Test_Folder/"
subdir1=[]
path=[]
for dirpath,subdir,filename in sorted(os.walk(rootdir)):
subdir1.append(subdir)
path.append(dirpath)
L=filter(None,subdir1)
del L[0]
Record_ids=[r_id for ids in L for r_id in ids]
User_records=pd.read_csv("User_records.csv")
records_data=User_records[["id",'recordId','recordType']]
A=records_data[records_data['recordType']=='A']
cnt=0
for dirpath,subdir,files in os.walk(rootdir):
for ids in A['recordId']:
for file in files:
for r_id in Record_ids:
if ids==r_id:
os.rename(os.path.join(dirpath,file),output_path+'A_'+str(cnt)+'.jpg')
cnt=cnt+1
実際に試してみてください。あなたはそれがどのように働くべきかあなたの考えを私たちに説明しただけです。 –
タイプC? – glegoux
@ GlegouxはC型と同じです。 – Jitesh