如何将特定文件(数据框中包含的文件)从一个文件夹复制到另一个文件夹

时间:2020-03-07 22:32:00

标签: python pandas dataframe glob

我有以下数据框:

import pandas as pd
df_Sensor = pd.DataFrame({'Name_Archive': ['SENSOR_1', 'SENSOR_250'], 
                                  'Type': ['Analog', 'Dig'],
                                  'Value': [199, 0]})

我的桌面上有两个文件夹。首先,“ Archive”文件夹包含具有以下名称的CSV文件:

SENSOR_1.csv
SENSOR_198.csv
SENSOR_250.csv

(它的位置是:C:/ Users / User / Desktop / Archive)

另一个文件夹称为“ Archive_Select”,此文件夹为空。 (其位置为:C:/用户/用户/桌面/ Archive_Select)

我想遍历“名称存档”数据框列并制作该文件的副本,该文件位于新文件夹(Archive_Select)的(Archive)文件夹中。

例如,由于“ Name_Archive”列包含“ Archive”文件夹中两个文件的名称,因此我希望在打开“ Archive_Select”文件夹时仅显示文件:

SENSOR_1.csv #and 
SENSOR_250.csv

我尝试使用glob函数,但是我不知道该怎么做:

import glob
All_Archives = glob.glob("C:/Users/Usuario/Desktop/Archive/*.csv")

for i in range(0, len(df_Sensor)):
    for j in range(0, len(All_Archive)):
        if(df_Sensor['Name_Archive'].iloc[i] == All_Archive.iloc[j]):
            df_Sensor.to_csv("C:/Users/Usuario/Desktop/Archive_Select.csv")

1 个答案:

答案 0 :(得分:1)

您首先定义源目录和目标目录

import pandas as pd
from shutil import copyfile
src_directory = "C:\Users\User\Desktop\Archive"
dest_directory = "C:\Users\User\Desktop\Archive_Select"

然后从数据框中循环访问所需文件以进行复制

for fileName in df_Sensor['Name_Archive']: 
    src_file = src_directory + "\\" + fileName + ".csv"
    dest_file = dest_directory + "\\" + fileName + ".csv"
    copyfile(src_file, dest_file)