[파이썬] 코드에서 커맨드 명령어를 실행 시키는 방법(with subprocess) 2편 (이 포스팅은 1편을 읽고 왔다는 전제로 작성 되었습니다.) 2편에서는 output값을 받는 방법과 인자를 넘겨주는 방법에 대해 알아보겠다. 기본 파일 세팅 #script.py print('hello') [ic]subprocess[/ic]를 이용하여 [ic]script.py[/ic] 파일을 실행시켜 보자. #subprocess_tutor.py subprocess.run(["python", "script.py"] #output ''' hello ''' output 전달받는 방법 #subprocess_tutor.py output = subprocess.run(["python", "script.py"], capture_output=True) print(output) #output ''' CompletedPro.. 파이썬/파이썬 중급 2023. 2. 8. [python]multiprocessing Process 완벽 정리(초보자) [ic]Process[/ic]를 이해하기 위해선 [ic]Process[/ic]가 왜 필요한지 부터 알아야 한다. Process 왜 필요할까? [ic]Process[/ic]를 사용하지 않으면 어떤 불편함이 발생할까? Process를 사용하지 않은 예 from multiprocessing import Process import time def function1(): print("Start function 1") time.sleep(3) print("End function 1") def function2(): print("Start function 2") time.sleep(5) print("End function 2") if __name__ == '__main__': function1() function2(.. 파이썬/파이썬 중급 2023. 1. 26. 함수에있는 **kwargs는 뭘까? 함수 인자에 [ic]**kwargs[/ic]가 들어간걸 자주 본 적 있을 거다. 조금 불편하게(?) 생긴 이 녀석을 왜 쓰는지 알아보자. 이 글을 읽기 전 선수 지식 포스팅 *, ** 사용법 *args 사용법( 2편) 컨셉 이해 def test(num, **kwargs): print(num) print(kwargs) test(1, num2=3) #output ''' 1 {'num2': 3} ''' [ic]**kwargs[/ic]에 넣어준 keyword argument값이 딕셔너리 형태로 출력된다. 주의할 점 1) keyword argument 만 받아야 한다. test(1, 3) #output ''' TypeError: test() takes 1 positional argument but 2 were g.. 파이썬/파이썬 중급 2023. 1. 16. [파이썬] argparse 란? | 사용법 이번 포스팅에서는 argparse의 역할과 사용법에 대해 알아보겠습니다. argparse는 argument parser의 줄임말로 인자와 관련된 기능을 제공 하는데요. 결론부터 말하자면 Command Line에서 직접 인자값을 넣어줄때 사용하는 모듈입니다. 아직 무슨 말인지 모르시겠죠? 아래 예시들을 차근차근 함께 보시죠. 1) argparse의 필요성 //test3.py 위와 같은 더하기 연산 함수가 있습니다. 이 함수를 실행시키기 위해선 임의의 인자값을 함수안에 넣어줘야 하는데요. //test3.py 그리고 실행할때는 Command Line에 아래와같은 방식으로 명령어를 입력해야하죠. 불편함을 느끼셨는지 모르겠지만, 코드단에서 인자를 수정하고, Command Line에서 명령어를 입력하는 작업을 합니.. 파이썬/파이썬 중급 2022. 8. 29. [Python기초] 특정 폴더에 있는 파일명 추출 하는법 완벽정리 특정 하위 디렉토리에 있는 파일 목록을 보고 싶을때 어떻게 할까요? 파이썬에는 os module을 통해 해당 작업을 쉽게 할 수 있습니다. os.chdir를 통해 해당 디렉토리로 이동 우선 우리가 원하는 파일명을 추출하기 위해서는 그 파일들이 있는 폴더 경로로 이동해야 합니다. 이때 사용하는것이 os.chdir 인데요 ch -> change / dir -> directory 말그대로 디렉토리를 변경 하는 친구입니다. 저는 아래와 같이 상대경로를 이용하여 키워드리스트 라는 폴더명을 가진 디렉토리로 이동하였습니다. (해당 함수는 절대경로/상대경로 다 이용가능합니다!) import os os.chdir('./키워드리스트') 실제로 현재 디렉토리가 변경되었는지 확인해볼까요? 이때 사용하는 함수는 os.getcw.. 파이썬/파이썬 중급 2022. 4. 19. [파이썬 중급] getattr | setattr | delattr 은 무엇일까? 아래와 같이 클래스로 이루어진 패키지나 라이브러리 깃헙 코드를 보다보면 아래와 같이 getattr이라는 녀석(?)을 자주 만나게 되는데요 이번 포스팅에서 이 친구가 누구인지에 대해 알아보도록 하겠습니다. 우선 해당 함수의 생김새를 보면 녀석의 기능을 유추할 수 있는데요. getattr --> get attribute 즉 클래스의 attribute 값을 얻어오는 함수라고 볼 수가 있습니다. # attribute를 모르시는 분들 위해 간단히 설명 드리자면. 클래스는 기본적으로 빨간색 부분과 파란색부분(함수)로 이루어져 있는데요. attribute는 빨간색 부분을 의미합니다. 예를 들어 Program이라는 클래스에서 language 값을 추출하고 싶을때 사용하는 것이죠. 실제로 어떻게 사용되는지는 코드를 통해.. 파이썬/파이썬 중급 2021. 10. 14. [파이썬 중급] @property, @함수명.setter 사용법 이번 포스팅에서는 클래스 METHOD 위에 DECORATOR 형태로 자주 등장하는 @property, @함수명.setter 에 대해서 알아보도록 하겠습니다. private variable 사용 class Rectangle: def __init__(self,width, height): self.width = width self.height = height def area(self): return self.width * self.height def __repr__(self): return 'Rectangle({0}, {1})'.format(self.width, self.height) r1 = Rectangle(10, 20) r1 output : 우선 간단한 클래스를 구현해보았습니다. 넓이 10, 높이 20 .. 파이썬/파이썬 중급 2021. 7. 23. [파이썬 중급] 진법 변환(N진수 -> 10진수 | 10진수 -> N진수) 이번 시간에는 진법 변환에 관해 알아보겠습니다. N진수 -> 10진수으로 바꾸는 법 N진법을 10진법으로 바꾸는 방법은 아주 간단합니다. 바로 int() 함수를 사용하면 됩니다! int()요..? 네 우리가 아는 그 string을 int로 바꿔주는 그 함수입니다. 우리가 진법을 바꾸는 기능이 있는지 몰랐던 이유는 int()함수내 디폴트로 값이 이미 설정되어 있기 때문입니다. 코드를 통해 확인을 해볼게요. 2진수를 10진수로 바꾸고싶다면.. 위와 같이 코드를 작성해주면됩니다. 첫번째 인자로 올 값은 string 형태로 이진법 숫자가 와야되구요. 두번째 인자에는 파이썬에게 "이건 '2진법 숫자'를 '10진법'으로 바꾸는거야 "라는 걸 알려주기 위해 이진법을 의미하는 2 라는 숫자를 넣어주었습니다. 만약 16.. 파이썬/파이썬 중급 2021. 6. 18. [파이썬 중급] map, filter | zip + list comprehension 이번시간에는 대표적인 Higher-Order function인 Map 과 Filter의 사용법을 알아 보겠습니다. 뿐만아니라 zip과 list comprehension을 통해 Map과 Filter의 기능을 구현해보겠습니다. (참고: Higher-Order function 은 인자로 함수를 받을 수 있는 function을 말한다.) Map map 함수는 첫번째 인자로 function 을 넣고, 두번째 인자에는 임의의 iterable들 을 넣을 수 있습니다. (참고로 iterable은 for문을 돌릴 수 있는 객체를 의미한다.) *iterables 는 여러개가 올 수 있다는 것을 의미합니다. 즉 iterable이 1개가 와도되고 2개 또는 그 이사잉 와도 된다는 뜻입니다. (*asterisk 표현에 대한것은.. 파이썬/파이썬 중급 2021. 5. 18. [파이썬 중급] *args 사용법( 2편) 오늘 배울 내용은 *args입니다. 1편에서 다룬 *과는 뭐가 다른것일까요? *args는 쉽게 말해 함수에서 쓰는 *라고 보면 됩니다. 둘은 비슷하면서도 달라 매번 헷갈리는 녀석들인데요. 오늘 포스팅을 통해 두개가 무엇이 비슷하고 다른지 하나 하나 알아가보도록 합시다. 일반적인 형태에서 *사용과 함수에서 *사용의 비교 1) 먼저 복습차원에서 일반적인 * 사용을 보죠. 아래 코드의 결과가 무엇이 나올까요? a, b, *c = 10, 20, 'a', 'c' print(a) print(b) print(c) output : 1편에서 배웠던 것 처럼 c는 a와 , b가 값을 받고 남은 값들을 리스트로 형태로 부여 받게 됩니다. 바로 이어 함수에서 쓰이는 *를 볼까요? def func1(a, b, *c): prin.. 파이썬/파이썬 중급 2021. 5. 4. [파이썬 중급] unpacking에 대해서 잘 알고 계시나요?(*, ** 사용법) 안녕하세요 혹시 여러분은 UNPACKING(언패킹)에 대해서 잘 이해하고 쓰시고 계신가요? 아래 문제를 풀어보시겠어요? l1 = [1,2,3] l2 = ['python'] l3 = [*l1,*l2] a, *b, (c, *d) = l3 print(a) print(b) print(c) print(d) a, b, c, d 에 각각 어떤 값이 나올 것 같으신가요.? 혹시 헷갈리신다면 이번 포스팅을 통해 확실히 개념을 익히시기 바랍니다.. 해당 코드에 정답은 마지막에 공부를 마친 후 다시 보죠! 기본 unpacking a, b, c = [1, 2, 3] # 리스트 print(a) print(b) print(c) 보시는것처럼 오른쪽에 위치한 리스트의 각 원소들이 위치에 상응하는 a, b, c에 들어가는 형태입니다... 파이썬/파이썬 중급 2021. 4. 22. [파이썬 중급] 클래스(CLASS) body 스코프(scope) 개념 정리! 먼저 여러분이 클래스 바디 스코프(class body scope)에 대한 개념을 잘 알고 있는지 테스트 해보겠습니다.! 아래의 코드를 보시고 어떤 값이 출력 될것 같은가요? MAJOR = 0 MINOR = 0 REVISION = 1 def gen_class(): MAJOR = 0 MINOR = 4 REVISION = 2 class Language: MAJOR = 3 MINOR = 7 REVISION = 4 def version(self): return '{}.{}.{}'.format(MAJOR, MINOR, REVISION) return Language() # 객체 생성 lang = gen_class() lang.version() 정답은... 0.4.2 입니다. 위 문제를 틀리신 분들은 끝까지 이번 내용.. 파이썬/파이썬 중급 2021. 4. 16. 이전 1 다음