Folder File 탐색
https://hleecaster.com/python-pathlib/
https://onesixx.com/import-path/
os.path.join() 경로만들기
import os root = '/Users/onesixx/my/Folder00' root = os.path.join('/Users/onesixx', 'my', 'Folder00')
os.getcwd() 현재 위치 (cf. pwd)
os.getcwd() # '/Users/onesixx/my/Folder00'
os.chdir() 현재위치 변경
os.chdir('/Users/onesixx/my') os.getcwd() # '/Users/onesixx/my' os.chdir('/home/onesixx/my/git/mmdetection') myData_root = os.path.join(os.getcwd(), 'data', 'pig')
os.listdir() 현재폴더내의 folder&file
os.listdir(root) # ['00.txt', 'ff.py', 'Folder01'] [f for f in os.listdir(root) if os.path.isdir(f)] # ['Folder01'] [f for f in os.listdir(root) if os.path.isfile(f)] # ['00.txt', 'ff.py']
os.walk()
for allPath, folders, files in os.walk('/Users/onesixx/my/Folder00'): print('-'*60) print(f'path: {allPath}') print(f'folders: {folders}') print(f'files: {files}') # ------------------------------------------------------------ # path: /Users/onesixx/my/Folder00 # folders: ['Folder01'] # files: ['00.txt', 'ff.py'] # ------------------------------------------------------------ # path: /Users/onesixx/my/Folder00/Folder01 # folders: ['Folder02'] # files: ['01.txt'] # ------------------------------------------------------------ # path: /Users/onesixx/my/Folder00/Folder01/Folder02 # folders: [] # files: ['02.txt']
os.walk() : full path
for path, _, files in os.walk(root): for fileNm in files: print(os.path.join(path, fileNm)) # /Users/onesixx/my/Folder00/00.txt # /Users/onesixx/my/Folder00/ff.py # /Users/onesixx/my/Folder00/Folder01/01.txt # /Users/onesixx/my/Folder00/Folder01/Folder02/02.txt
os.path.splitext() 파일의 확장자
for (path, folders, files) in os.walk(root): for filename in files: fileWithExt = os.path.splitext(filename) print(fileWithExt) # ('00', '.txt') # ('ff', '.py') # ('01', '.txt') # ('02', '.txt')
for (path, folders, files) in os.walk(root): for filename in files: ext = os.path.splitext(filename)[-1] if ext == '.py' : print(f'{path}/{filename}') # /Users/onesixx/my/Folder00/ff.py
for root, dirs, files in os.walk(log_path): file_list = list(filter(lambda s: s[-3:]=="log" , files)) file_list.sort() print(file_list) break; # /Users/onesixx/my/Folder00/ff.py
example
# string root_dir = log_path for (root, dirs, files) in os.walk(root_dir): print('_'*66) print(f'root : {root}') if len(dirs) > 0: [print(f'dir : {dir_name}') for dir_name in dirs] if len(files) > 0: [print(f'file : {file_name}') for file_name in files] # list for (root, dirs, files) in os.walk(root_dir): print('_'*66) print(f'root : {root}') print(f'dirs : {dirs}') print(f'files: {files}')