删除文件与复制文件汇总

import os
import pandas as pd
import shutil
import numpy as np

root_path = 'F:\\template\\handobj-mark\\data\\img'

copy_path = 'F:\\Right_hand\\Park'

os.makedirs(copy_path)

def delete_txt(root1):    
    os.chdir(root1)
    files = os.listdir(root1)
    data = pd.DataFrame(np.zeros(5000),columns = ['pngname'])
    data1 = pd.DataFrame(np.zeros(5000),columns = ['txtname'])
    i = 0
    j = 0
    for filename in files:
        (name1,extension1) = os.path.splitext(filename)
        if extension1 == '.png':
            data['pngname'][i] = name1
            i = i+1
        else:
            data1['txtname'][j] = name1
            j = j+1
    datapng = data[data.pngname > 0]
    
    datatxt = data1[data1.txtname > 0]
    if datapng.shape[0] <= datatxt.shape[0]:
        data2 = pd.merge(left=datatxt, right=datapng, how='left', left_on='txtname', right_on='pngname')
        print('OK!')
    else:
        data2 = pd.merge(left=datapng, right=datatxt, how='left', left_on='pngname', right_on='txtname')
        print('Error!')
    data2["bz"] = data2["txtname"] - data2["pngname"]
    rmdata = pd.DataFrame(data2[data2.bz != 0]["txtname"].astype(np.int64).astype(np.str))
    rmdata["txtname"] = rmdata["txtname"] + '.txt'
    for i in rmdata.index:
        rmfile = os.path.join(root_path,rmdata["txtname"][i])
        os.remove(rmfile)

     delete_files(datapng)

def delete_files(datapng):
    num1 = 5000
    originaldata = pd.DataFrame(np.ones(num1),columns = ['original'])
    for i in range(1,num1):
        originaldata["original"][i] = originaldata["original"][i] + originaldata["original"][i-1]
    result = pd.merge(left=originaldata, right=datapng, how='left', left_on='original', right_on='pngname')
    result["bz"] = result["original"] - result["pngname"]
    resultdata = result[result.bz != 0]
    result1 = resultdata["original"].astype(np.int64).astype(np.str)
    result1 = pd.DataFrame(result1)
    result1["original"] = result1["original"] + '.png'

    result1.to_excel("F:\\delete_Park.xlsx",index = False)


def copy_files(path1,path2):
    label_files = os.listdir(path1)
    for label_file in label_files:
        (name,extension) = os.path.splitext(label_file)
        if extension == '.txt':
            textfile_path = os.path.join(path1,label_file)
            shutil.copy(textfile_path,path2)

if __name__=='__main__':

    delete_txt(root_path)

    copy_files(root_path,copy_path)

猜你喜欢

转载自blog.csdn.net/Blackrosetian/article/details/81411202