컴퓨터/Python
[파이썬] argv[], 재귀함수 (하위폴더검색) (유튜브 보다가 메모)
스노우볼^^
2020. 8. 23. 08:44
반응형
메모장 만들기
실행할 때 옵션을 받고, 옵션에 따라 다른 기능을 수행.
argv[]
# 메모장 만들기
# 입력 : python memo.py -a "Life is too short"
# 출력 : python memo.py -v
# 메모 추가, 조회, 출력은 memo.txt
import sys
option = sys.argv[1]
if option == '-a':
memo = sys.argv[2]
f = open('memo.txt','a')
f.write(memo)
f.write('\n')
f.close()
elif option == '-v':
f = open('memo.txt','r')
memo = f.read()
f.close()
print(memo)
# *******************************
# 탭을 4개의 공백으로 바꾸기
# python tabto4.py a.txt b.txt
import sys
src = sys.argv[1]
dst = sys.argv[2]
f = open(src)
tab_content = f.read()
f.close()
spave_content = tab_content.replace("\t", " "*4)
f = open(dst, 'w')
f.write(space_content)
f.close()
디렉토리, 파일이름 조회
하위폴더 검색 = 재귀함수 (함수 안에서 또다시 함수를 호출)
# *******************************
# 하위 디렉터리 검색하기
# python tabto4.py a.txt b.txt
import os
def search(dirname):
try:
filenames = os.listdir(dirname)
for filename in filenames:
full_filename = os.path.join(dirname, filename) #디렉터리+파일이름 = 전체경로
if os.path.isdir(full_filename): #하위폴더도 검색
search(full_filename) #재귀함수 : 함수 안에서 또다시 함수를 호출
else:
ext = os.path.splitext(full_filename)[-1] #확장자만 분리해준다. #튜플형태로 파일경로와 확장자가 분리되어 저장됨, [-1]은 마지막 인덱스 = 확장자만 선택
if ext == ".py":
print(full_filename)
except PermissionError: #접근권한 때문에 오류가 날 때
pass
search("C:/")
www.youtube.com/watch?v=M4sDbGW62R0&feature=push-u-sub&attr_tag=orNFCyfMWVfEHV2-%3A6
반응형