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}')