import numpy as np
import pandas as pd
import glob
import os
import os.path
import matplotlib.pyplot as plt
import sys
sys.path.append('../../')
from lib.Med_def_file import Trans_file
from lib import Classfication_folder

Classfication_folder('/Users/toshinari/Downloads/SVM_file/INPUT_2', '/Users/toshinari/Downloads/SVM_file/ALL_RESULT', 'ref.txt', remove = 'OFF')



'''
#データを大量に読み込んで遮蔽物毎にサンプルをフォルダ分けするプログラム
plt.close()
y_all = []
flag = 0
l = 0
i = 0
k = 0
m = 0
#教師データのある大元フォルダの選択
path_1 = '/Users/toshinari/Downloads/SVM_train'

#num = 1#教師データのフォルダの数(適宜変更)

#med = ['lac50','mal50','glu50']
File = ['Intencity', 'Trans']
Input_path = '/Users/toshinari/Downloads/SVM_file/INPUT_2'
Resalt_path = '/Users/toshinari/Downloads/SVM_file/ALL_RESULT'
Ref = 'ref.txt'

Teacher = os.chdir(Input_path)#遮蔽物の種類毎にサンプルを分類したいとき用
if os.path.exists(Input_path + '/.DS_Store'):
    os.remove(Input_path + '/.DS_Store')
directory = os.listdir(Teacher)
#print(directory)
directory = sorted(directory)
print(directory)
len_dir = len(directory)
#print(len_dir)
first = 0.9
last = 2.0
l=0


#print(directory[2])
#以下MacOSでの特殊な処理。MacOSではフォルダ内に複数のフォルダが存在すると謎のファイルDS_Storeが自動で生成される。Windowsで実行する場合はfor文のrange内の-1を消す。そしてchoice_dirの+1を消す


for i in range(0,len_dir):
    date_dir = directory[i]
    print(date_dir)
    os.chdir(Input_path + '/{}'.format(date_dir))
    print(os.getcwd())
    dir_list = sorted(os.listdir(Input_path + '/{}'.format(date_dir)))
    Ref_path = Input_path + '/{}'.format(date_dir) + '/' + Ref
    print(os.getcwd())
    shield_list = [n for n in dir_list if not n .count('.txt')]
    if os.path.exists(Input_path + '/{}'.format(date_dir) + '/.DS_Store'):
        os.remove(Input_path + '/{}'.format(date_dir) + '/.DS_Store')

    #print(n)
    print('\n遮蔽物リスト')
    print(shield_list)

    for x in range(0,len(shield_list)):
        if os.path.exists(Input_path + '/{}/{}'.format(date_dir,shield_list[x]) + '/.DS_Store'):
            os.remove(Input_path + '/{}/{}'.format(date_dir,shield_list[x])+ '/.DS_Store')

        os.chdir(Input_path + '/{}/{}'.format(date_dir,shield_list[x]))

        if os.path.exists(Resalt_path + '/{}/'.format(shield_list[x])) == False:
            os.mkdir(Resalt_path + '/{}/'.format(shield_list[x]))
            os.chdir(Resalt_path + '/{}/'.format(shield_list[x]))
            os.mkdir(File[0])
            os.mkdir(File[1])
        else:
            os.chdir(Resalt_path + '/{}/'.format(shield_list[x]))
            print('Exist')
        med_list = sorted(os.listdir(Input_path + '/{}/{}'.format(date_dir,shield_list[x])))  # ディレクトリをソートして取得

        med_list = [n for n in med_list if not n.count('.txt')]
        print('\t遮蔽物の中のサンプルリスト')
        print(med_list)
        med = med_list
        print(os.getcwd())
        print(len(File))
        for m in range(0,len(File)):
            os.chdir(Resalt_path + '/{}/'.format(shield_list[x]))
            a = os.chdir('{}'.format(File[m]))
            print('\n現在地' )
            print(os.getcwd())

            for j in med:
                os.chdir(Resalt_path + '/{}/{}'.format(shield_list[x], File[m]))



                if os.path.exists('{}'.format(j)) == False:
                    os.mkdir('{}'.format(j))
                else:
                    print('lets go')


                if os.path.exists(Input_path + '/{}/{}/{}'.format(date_dir,shield_list[x],j)) == False:
                    print('\tThis sample do not exist in {} folder'.format(date_dir))

                else:
                    os.chdir(Input_path + '/{}/{}/{}'.format(date_dir,shield_list[x],j))

                    if m == 0:
                        #os.chdir(Resalt_path + '/{}/{}'.format(shield_list[1], File[m]))
                        for k in sorted(glob.glob("*.txt")):
                        
                            df = pd.read_csv(k, engine='python', header=None, index_col=0, sep=',')
                           
                            df.to_csv(
                                Resalt_path + '/{0}/Intencity/{1}/Intencity_{2}_{3}.csv'.format(
                                    shield_list[x], j, k.rstrip(".txt"), date_dir), sep=",")
                            # 以下２行は別ファイルで定義した関数

                    elif m == 1:
                        #os.chdir(Resalt_path + '/{}/{}'.format(shield_list[1], File[m]))
                        for k in sorted(glob.glob("*.txt")):
                            trans = Trans_file(k, Ref_path, first, last)
                           
                            print(type(trans))
                            trans.to_csv(
                                Resalt_path + '/{0}/Trans/{1}/Trans_{2}_{3}.csv'.format(
                                    shield_list[x], j, k.rstrip(".txt"), date_dir), sep=",")
                    # os.remove('/Users/toshinari/Downloads/SVM_file/INPUT_2/{}/{}/{}'.format(date_dir,shield_list[1], k))

'''