파일 경로 관련 API들
·
사소한 아이의 소소한 스킬/Python
개발을 하다보면 경로 관련해서 계산해야 할 때가 있다. 물론 QFileDialog등과 같은 api를 이용해서 선택한 파일의 path를 가져올 수도 있지만... 현재 실행되는 위치에서 상대적으로 위치를 계산하거나.. 절대적인 경로를 가져오거나 할때는 굳이 FileDialog를 안쓰고 가져올 수도 있다... 그 방법 들이다..! 현재 폴더 가져오기 os.getcwd() Output: C:\Users\Administrator\PycharmProjects\pythonProject2\ 디렉토리 위치 변경하기 os.chdir("C:\Program Files (x86)\ESTsoft") 절대 경로 가져오기 print(os.path.abspath("")) Output: C:\Users\Administrator\Pych..
평균 구하기
·
사소한 아이의 소소한 스킬/Python
이번엔 평균 구하기다...... 또 다시 C#을 먼저 말해본다면.. 리스트에 .Sum(), .Average() 함수가 존재하여 호출만 해주면 끝.... C# 너무 편하죠............... 파이썬도 쉽게 사용하기 위한 언어니깐 당연히 편한게 있겠지!!!! 바로 코드 ㄱㄱ import statistics arr1 = [10, 20, 30, 40, 50, 60, 70, 80, 90, 100] arr2 = [15, 26, 48, 59, 57, 68, 35, 24] # 평균 구하기 result1 = statistics.mean(arr1) result2 = statistics.mean(arr2) # 출력 print(f"average1 : {result1}") print(f"average2 : {result..
시간 측정하기
·
사소한 아이의 소소한 스킬/Python
프로그램을 개발하다보면.... 특정 모듈이... 특정 함수가.. 시간이 얼마나 걸리는지 체크해야할때가 있다. WPF의 경우 Stopwatch라는 클래스가 따로 존재하여 start, stop함수를 통해 계산했었는데... 파이썬은...어떤함수가 있을지 알아보도록 하자.. 파이썬의 기본 모듈인 time 모듈을 확인하면 시간측정을 할 수 있다 바로 코드 ㄱㄱ import time start = time.time() print("시간측정") print("some function....") end = time.time() print(f"{end - start:.5f} sec") Output: 0.00000 sec 너무 간단한 print문 2개라.. 0.000초가 나온다... 좀 시간이 걸릴만한걸하면... impor..
Python 간단 팁
·
사소한 아이의 소소한 스킬/Python
리스트 역변환시키기 a=[“10”,”9",”8",”7"] print(a[::-1]) a.reverse() Output: ['7', '8', '9', '10'] # a[::-1]과 a.reverse()의 차이점 # a[::-1]의 경우 실 데이터 변경없이 거꾸로 출력만 진행하되 # reverse의 경우 실 데이터 자체를 역변환 시켜버림으로써 이 다음 작업 진행 시에도 역변환이 진행되었다는 것을 알고 있어야 한다. 리스트 합치기 a=[‘a’,’b’,’c’,’d’] b=[‘e’,’f’,’g’,’h’] for x, y in zip(a, b): print(x,y) Output: a e b f c g d h 리스트 내에서 빈번한 값 찾기 a = [1, 2, 3, 4, 2, 2, 3, 1, 4, 4, 4] print..
Wav 파일 헤더정보 보기
·
사소한 아이의 소소한 스킬/Python
def wav_print(file_path): # 파일 읽어오기 file = open(file_path, "rb") # 44바이트의 헤더정보 가져오기 data = file.read(44) # 44바이틔 헤더 정보를 Dictionary 형태로 저장하기 file_header = {"name": file_path, "ChunkID": data[0:4], "ChunkSize": int.from_bytes(data[4:8], byteorder='little'), "Format": data[8:12], "Subchunk1ID": data[12:16], "Subchunk1Size": data[16:20], "AudioFormat": int.from_bytes(data[20:22], byteorder='little')..
파이썬 변수 타입설정??????
·
사소한 아이의 소소한 스킬/Python
파이썬은 기본적으로 아래와 같이 타입을 설정하지 않고 변수를 설정한다. # 자동적으로 int형 AAA = 22 # 자동적으로 string형 BBB = "string" # 자동적으로 list CCC = [1,2,3,4] 이러한 방식은 내가 사용하던 C#과 너무 헷갈리고.. 어떠한 타입으로 선언되는건지 헷갈린다. 선언자체는 문제없지만 해당 변수를 가지고 놀때 굉장히 헷갈린다...(일단 나는....) C#의 경우 int AAA = 22 string BBB = "string" List CCC = new List() { 1, 2, 3, 4 } ; 얼마나 보기 편한가.. 물론 C#에서도 var 변수가 있어서 python처럼도 선언할 수 있다...하지만.. var변수를 잘 안쓰고... 뭔가 명확하게 형을 선언하는것을..
list comprehension 간단 예
·
사소한 아이의 소소한 스킬/Python
x_list = [1.2, -1.3, 0., 2.2, 0., 5.3, 3.7] # 일반 if문 만을 이용하여 데이터를 입력한다. x1 = [value for value in x_list if value > 2] # 3항 연산자를 이용하여 데이터를 입력한다. x2 = [x if x > 2 else '' for x in x_list] print(x1) print(x2) 일반 if문과 삼항을 썼을때 결과는 좀 다르게 나온다. 일반의 경우 else문이 없기에 해당 조건이 해당되지 않을때 아무것도 수행하지않지만. 3항의 경우 else문이 있기에 특정 행위를 진행한다. 그리하여 최종적으로 나오는 결과가 달라질수밖에 없는 것 # x > 2에 해당되지 않는 항목은 list에 추가되지 않는다. [2.2, 5.3, 3.7..
아나콘다 환경에서 패키지 설치 실패시 방법
·
사소한 아이의 소소한 스킬/Python
현재 파이썬언어를 사용해보고있다.. 파이썬은 인터넷환경에서 pip install 기능을 이용하여 기타 패키지들을 설치할 수 있다 C#을 기준으로 한다면 비주얼 스튜디오에서 nuget을 이용하여 패키지를 설치하는것과 비슷한 맥락의 설치방법이다. 하지만 이것이 좀 개같은게... 설치가 잘 안된다... 특히나 내 경우에는 업무방이 인터넷이 안되기에.... 인터넷이 되도 안되는곳이 엄청나게 많기에.... 설치가 안된다.... 그리하여 오프라인으로 설치해야한다는 것.... 오프라인 설치방법은 인터넷 찾아보면 여러개 있지만.... 난 하나도 작동되지 않았다...... 그리하여 막 혼자 쌩쇼를 하며 찾아본 결과를 적어둔다!!! 일단 아나콘다/파이참 환경을 설치해준다 https://www.anaconda.com/pro..
008. Deque
·
사소한 아이의 소소한 스킬/Python
C#을 쓰면서 주로 list, dictionary등을 사용해왔다.. 물론 Queue도 메시지 처리하면서 많이 썼다 (중간에 메시지 처리를 안하는 것을 방지 하기 위하여) Python에서도 queue, list 등 모두다 지원하지만.. 추가로 Deque라는 것을 지원한다. 코드 ㄱ from collections import deque deq = deque() # Add element to the start deq.appendleft(10) # Add element to the end deq.append(0) # Pop element from the start deq.popleft() # Pop element from the end deq.pop() deque는 queue와는 다르게 맨 끝에 추가하거나, 맨..
008. Deque
·
사소한 아이의 소소한 스킬/Python
C#을 쓰면서 주로 list, dictionary등을 사용해왔다.. 물론 Queue도 메시지 처리하면서 많이 썼다 (중간에 메시지 처리를 안하는 것을 방지 하기 위하여) Python에서도 queue, list 등 모두다 지원하지만.. 추가로 Deque라는 것을 지원한다. 코드 ㄱ from collections import deque deq = deque() # Add element to the start deq.appendleft(10) # Add element to the end deq.append(0) # Pop element from the start deq.popleft() # Pop element from the end deq.pop() deque는 queue와는 다르게 맨 끝에 추가하거나, 맨..
007. dict
·
사소한 아이의 소소한 스킬/Python
딕셔너리 메서드 메서드 설명 setdefault(키, 기본값) 딕셔너리에 키-값 쌍을 추가, 키만 지정하면 값에 None을 저장 update(키=값) update(딕셔너리) update(리스트) update(튜플) update(반복가능한객체) 딕셔너리에서 키의 값을 수정, 딕셔너리에 키가 없으면 키-값 쌍을 추가 pop(키) pop(키, 기본값) 딕셔너리에서 특정 키-값 쌍을 삭제한 뒤 값을 반환, del 딕셔너리[키]와 같음 기본값을 지정하면 키가 없을 때 기본 값을 반환 popitem() 딕셔너리에서 임의의 키-값 쌍을 삭제하고 해당 키-값 쌍을 튜플로 반환 clear() 딕셔너리의 모든 키-값 쌍을 삭제 get(키) get(키, 기본값) 딕셔너리에서 특정 키의 값을 가져옴 기본값을 지정하면 키가 없..
006. list, tuple
·
사소한 아이의 소소한 스킬/Python
메서드 설명 append(값) append(리스트) 리스트 끝에 값을 추가, 리스트[len(리스트):] = [값]과 같음 리스트를 넣으면 리스트 안에 리스트가 들어감 extend(리스트) 리스트 끝에 다른 리스트 연결, 리스트[len(리스트):] = [값, 값]과 같음 insert(인덱스, 값) 리스트의 특정 인덱스에 값을 추가 pop() pop(인덱스) 리스트의 마지막 값을 삭제한 뒤 삭제한 값을 반환 인덱스를 지정하면 해당 인덱스의 값을 삭제한 뒤 삭제한 값을 반환, del 리스트[인덱스]와 같음 remove(값) 리스트에서 특정 값을 삭제 index(값) 리스트에서 특정 값의 인덱스를 구함 count(값) 리스트에서 특정 값의 개수를 구함 reverse() 리스트에서 값의 순서를 반대로 뒤집음 so..
005. datetime
·
사소한 아이의 소소한 스킬/Python
c#에서 자주 쓰던 datetime.. python도 당연히 지원하고 있다.. 하지만 역시나 사용하는 방법은 다르지.. 사용하는 방법은 아래와 같다. from datetime import datetime datetime.now() datetime(2020, 7, 18, 13, 26, 23) datetime.datetime(2020, 7, 18, 13, 26, 23) 상단에 datetime import 후 datetime(년, 월, 일, 시, 분, 초) 출력의 경우 datetime.now().tostring("yyyy/MM/dd HH:mm:ss.fff) 였던것을.. 포맷 코드 설명 예 %a 요일을 짧게 표시합니다. Sun %A 요일을 길게 표시합니다. Sunday %w 요일을 숫자로 표시합니다. 일요일을 ..
004. 문자열
·
사소한 아이의 소소한 스킬/Python
문자열을 건드려보자.. 개발을 하면서 문자열을 정말 질리도록 쓴다.. 물론 int변수로도 처리할수있지만.. 문자열 변수야... 지난번 포스팅에서 말했고... 기초적인거부터 하나하나.. 작성.. lang = 'python' print(lang[0], lang[3]) # p h 위와같이 문자열 지정 후 인덱스를 지정하여 원하는 문구만 가져올수있다. (하지만 값 변경은 불가) license_plate = "12가 3456" print(license_plate[-4:]) # 3456 파이썬은 리스트구조에서 : 구문을 이용하여 참 여러가지 슬라이싱이 가능하다. : 문구를 기준으로 앞은 앞에서 몇번째부터 가져올것인지, 뒤는 뒤에서 length 정보 이다. -가 들어간다면 역방향을 나타내는 것. 그리하여 위 구분은 ..
003. 변수 선언
·
사소한 아이의 소소한 스킬/Python
파이썬을 이제 배우는 사람으로써... 굉장히 어색한 문법이다. 변수선언... 기존 C#을 쓰면서는 무조건 변수선언 시 int, string, double, float, bool 등을 지정하여 사용하였으나(var도 잘 안썻음..) python은... 다르다.. 변수선언 자체가 없다.. 그냥 int 변수에 10이라는 값을 넣고자 한다면... A = 10 끝이다... 뭐 이런... 그러다보니 나는 개인적으로는..(아직 적응이안되서라고 생각하는중) 어색하고.. 이게 대체 무슨 타입이지 하는 생각이 너무많이 드는 편.. 만약 다른 타입을 선언한다고 하면... B = "string" C = 223F D = 22D 이렇게 작성하면 끝.. 뒤에 세미클론도 없다.. ( Python은 기본적으로 코드 띄워쓰기로 구문을 비..
002. fstring
·
사소한 아이의 소소한 스킬/Python
2번째는 변수선언하는거를 하려고했는데... 일단 fstring을 좀 써야할 것 같다. fstring이란 string을 조금 더 편하게 쓰기 위한 방법중 1개다. C#으로 예를 들면 string.format 을 이용하여 내가 원하는 string을 변수들과 같이 작성하여 원하는 포맷으로 작성하는 함수가 있다. fstring이 이와 같은 기능을 해주는 것.. 즉, 예를 들자면 변수 A에 "Hello World", 변수 B에 123 이라는 값이 들어가있다는 가정하에 Hello, World, (123) 이라는 값을 출력한다고 하면...... 기존 대로한다면 Console.WriteLine(A + "(" + B + ")" ) 라고 작성을 하여야 원하는 대로 작성이 될 것이다. 하지만 string.format을 쓴다..
001. Python을 시작해보자
·
사소한 아이의 소소한 스킬/Python
업무상 파이썬을 배워야 하는 상황이 오고 말았다.. 그리하여 파이썬을 공부하기 시작... 첫 단추는 역시나 Hello, World 찍기가 아닐까 싶다. C printf("Hello, World"); C++ cout
내일 출근하기싫다....
·
사소한 아이의 소소한 스킬/Python
휴가가 끝나간다.... 출근하기시르다..... 하지만...해야겠지... 출근전 커피.. 오송까지 가서 먹었드아.. 뷰가좋다....... 아 낼 시렁 ㅠㅠㅠ
가즈아 대전..!!
·
사소한 아이의 소소한 스킬/Python
대전시티즌의 35라운드 부천과의 경기..!! 전반 답답함의 연속.. 축구를 배워본적도없는 사람이지만... 윙백....아..답답... 좀 더 올라와줬으면 좋겠는데...제자리에 있는 부분이... 좀..그렇다.... 못배운 사람의 생각.. 그래도 공격상황에서 정말 빠르게 사이드 돌파해주는 모습은 너무보기좋았다.. 결국 결과는 3대1 승리..!! 1위 승격은 힘들거같고... 현재 3위니 준준플레이오프부터 시작할 확률이 높은데.... 제발 승격갔으면...안가도...열심히 봐 줄 마음은 있지만..!!
2022년 여행
·
사소한 아이의 소소한 스킬/Python
일단..아직 여행이 끝나진않았다...첫날일뿐... 내 여햄의 시작은 천안을 들렸다가.. 평창 육백마지기에서 첫 차박을 하는것... 하지만... 비가옵니다..... 거기다가...천안까지 올라갔는데도... 4시간이걸린다는...네비의 시간... 이건 살짝 에바아닌가... 하는 마음.... 그래서...차를 돌려버리고야 말았다.... 집 근처 한시간 거리에서...그냥 묵는것으로..... 그리하여 간단한 저녁... 그리고 간단한..음주... 고기를 구워먹을까도 고민했으나...그건 살짝.... 그리고 첫날이 이렇게 간다.... 내일은 그냥 집으로갈지.... 아니면 또 다른곳을 찾아 떠날ji.... 집떠나면 고생인건데..... 고민이크다... 2022년 오랜만이 여행이... 참..내 계획대로 되지않는다.....
대전하나시티즌 경기관람..!
·
사소한 아이의 소소한 스킬/Python
오랜만에 직관..!! 시즌권인데...잘 안오다가...오랜만에 왔다..!! 다른 일 겸해서 온건데..다른일은 못한....하아.. 담주에 또 가야할듯... 아무튼...왔으니...승리가자..!!!