Python/이것저것 파이썬
-
ttkbootstrapPython/이것저것 파이썬 2022. 12. 22. 18:31
https://ttkbootstrap.readthedocs.io/en/latest/themes/ Themes - ttkbootstrap Themes ttkbootstrap comes packaged with a LOT of beautifully styled light and dark themes, which you can view in a demo by typing this command into your terminal after installing ttkbootstrap. >>> python -m ttkbootstrap You will see a demo screen that look ttkbootstrap.readthedocs.io https://github.com/israel-dryer/ttkbo..
-
파이썬 MS Windows 내장 TTS 활용Python/이것저것 파이썬 2022. 12. 1. 13:10
파이썬 TTS를 검색하면 gTTS가 가장 많이 검색됩니다. 구글의 API를 이용해서 mp3로 받아오는 건데.... 꽤 불편합니다. 윈도우에도 TTS기능이 내장되어 있는데요. 오프라인에서 작동하고, 음질도 나쁘지 않습니다. https://learn.microsoft.com/en-us/previous-versions/windows/desktop/ms723627(v=vs.85) Microsoft Speech API (SAPI) 5.3 Table of contents Microsoft Speech API (SAPI) 5.3 Article 04/17/2012 2 minutes to read In this article --> Microsoft Speech API 5.3 Microsoft Speech API (SA..
-
(서브 폴더 포함) 전체 파일 해시 추출Python/이것저것 파이썬 2022. 10. 28. 09:57
[Q] 폴더와 파일 이름과 용량 등을 비교하여 파일 매칭을 해야하는데요. 네트워크로는 공유가 안되고 복사하기엔 용량이 너무 큰 상태입니다. ------------------------------- [A] 각 PC에서, 파일 패스, 파일 사이즈, 해시값을 출력한 뒤 이 값들을 비교하는 게 좋을 것 같습니다. 해시의 원리상 같은 파일일 경우 해시 값은 항상 같습니다. 다른 파일일 경우 해시 값이 같을 확률이 아주 약간 있습니다만, 파일 크기까지 비교한다면 그 확률을 더 줄일 수 있습니다. import os import hashlib def check_dir(path): for root, _, files in os.walk(path): for file in files: joined_path = os.path...
-
파이썬 초기 설정 저장 방식Python/이것저것 파이썬 2022. 10. 25. 13:20
저는 프로그램의 초기 설정들은 저장할 때, pickle을 많이 씁니다. 바이너리 파일이라 유저들이 수정하기 어렵고, 코드는 간결하죠. https://scshim.tistory.com/614 하지만 유저들이 수정하도록 열어두어야할 설정도 있습니다. 이럴 경우에는 ini, json, yaml, xml, toml, py 등을 사용합니다. 가장 많이 알려진 ini 같은 경우는 공식 문서(configparser - 구성 파일 구문 분석기)를 보는 것이 가장 좋습니다. https://docs.python.org/ko/3/library/configparser.html 전체적으론 이런 글을 참고해도 좋겠죠. https://emilkwak.github.io/python-setting-file-ext xml은 공식 문서를..
-
100명의 죄수 문제Python/이것저것 파이썬 2022. 10. 17. 12:38
https://www.youtube.com/watch?v=PE4vLbyOgw0 https://www.youtube.com/watch?v=OIi7FCmTtxc from random import shuffle def find_num(): # 죄수 번호가 들어갈 박스 boxes = {} # 죄수 번호(1~100)를 셔플. nums = [i for i in range(1, 101)] shuffle(nums) # 셔플된 죄수 번호를 하나씩 뽑아 박스에 넣는다. for i, num in enumerate(nums): boxes[i + 1] = num # 각 죄수가 방에 들어가 자신의 번호가 매겨진 박스부터 열어본다. for prisoner in range(1, 101): open_num = prisoner for ..
-
파이썬으로 버전 비교Python/이것저것 파이썬 2022. 10. 6. 13:02
버전을 비교하려면, 어떻게 하는 것이 깔끔할까요? '1.9.1' > '1.10' # True 버전은 숫자와 점으로 구성된 문자열입니다. 이런 코드가 떠오릅니다만.. import doctest def to_int_tuple(a: str) -> tuple[int]: return tuple(int(each) for each in a.split('.')) def compare(a: str, b: str) -> str: """ >>> compare('1.19', '1.10.1') '>' >>> compare('1.1', '1.10.1') '' """ a_tuple, b_tuple = to_int_tuple(a), to_int_tuple(b) if a_tuple == b_tuple: return '==' elif ..
-
파이썬으로 WOL 매직패킷 쏘기Python/이것저것 파이썬 2022. 9. 16. 08:13
import socket import struct ip = '192.168.0.255' mac = '00-11-22-33-44-55' mac_split = mac.split('-') address = struct.pack( 'BBBBBB', int(mac_split[0], 16), int(mac_split[1], 16), int(mac_split[2], 16), int(mac_split[3], 16), int(mac_split[4], 16), int(mac_split[5], 16), ) magic = b'\xFF' * 6 + address * 16 sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) sock.setsockopt(socket.SOL_SOCKE..
-
[파이썬] count, Counter with dictionaryPython/이것저것 파이썬 2022. 8. 30. 07:31
list.count() # list.count() 메서드를 이용. some_list = ['a', 'b', 'c', 'b', 'd', 'm', 'n', 'n'] duplicates = set() for each in set(some_list): if some_list.count(each) > 1: duplicates.add(each) print(duplicates) # 컴프리헨션으로 정리 duplicates = set(each for each in set(some_list) if some_list.count(each) > 1) print(duplicates) dictionary # 딕셔너리를 이용. some_list = ['a', 'b', 'c', 'b', 'd', 'm', 'n', 'n'] counte..