import os
import pandas as pd
from tqdm.notebook import tqdm, tqdm_notebook
# 각 키워드로 조회된 파일 및 경로 정보를 엑셀로 저장한다.
# 조회 범위가 넓은 경우 시간이 많이 소요된다.
def print_files_in_dir(root_dir, prefix):
files = os.listdir(root_dir)
for file in files:
path = os.path.join(root_dir, file)
if os.path.isdir(path):
print_files_in_dir(path, prefix + " ")
else:
path = path.replace("\\","/")
root_dir = root_dir.replace("\\", "/")
# 좌변은 main 함수의 변수 안먹는듯 a = a + b 에서 좌변의 a 와 우변의 a 는 다름.
allDict = {"absolutefileName":path, "dir":root_dir, "fileName":file}
allList.append(allDict)
if __name__ == "__main__":
# dictionary 선언
allDict = {}
allList = []
# 검색결과 파일 목록 df
searchFileDf = pd.DataFrame(data=None, index=None, columns=["absolutefileName", "dir", "fileName"], dtype=None, copy=False)
root_dir = "Z:/01.현행시스템분석/05.하둡/03.hue/workspaces"
print_files_in_dir(root_dir, "")
searchFileDf = pd.DataFrame(allList)
# 파일명 일치
# searchFileDf = searchFileDf[searchFileDf['fileName'].str.contains('지구')]
# 파일명 또는 디렉토리명에 존재하는 경우
# 하둡관련 자료 조회
# searchFileDf = searchFileDf[searchFileDf['absolutefileName'].str.contains('하둡') | searchFileDf['absolutefileName'].str.contains('hadoop') | searchFileDf['absolutefileName'].str.contains('HADOOP')]
# 하둡 플랫폼 관련 자료 조회
searchFileDf = searchFileDf[searchFileDf['absolutefileName'].str.contains('플랫폼') | searchFileDf['absolutefileName'].str.contains('platform') | searchFileDf['absolutefileName'].str.contains('빅데이터')]
# df_and = df[(df['age'] < 35) & ~(df['state'] == 'NY')]
# df_or = df[(df['age'] < 20) | (df['point'] > 90)]
# 컬럼기준 재정렬
searchFileDf.sort_values(by=["absolutefileName"], axis=0, inplace=True)
# 인덱스 리셋
searchFileDf = searchFileDf.reset_index(drop=True)
searchFileDf.to_excel(excel_writer='Z:/20.Dev/01.Python/02.download/searchFileList.xlsx')
# 리스트 데이터 프레임에 넣기 1
# for i in range(len(fileList)):
# # print(i)
# searchFileDf.loc[i,"fileName"] = fileList[i]
# 리스트 데이터 프레임에 넣기 2
# print(pd.DataFrame(fileList))