본문 바로가기

Python8

파이썬으로 ZIP 파일 해제 import zipfile with zipfile.ZipFile('doc.zip', 'r') as zf: z.extractall() # 현재 폴더에 해제 # 특정 폴더에 해제하려면 인자로 전달 z.extractall('Downloads') 2022. 1. 2.
셀레니움을 위한 크롬 드라이버 자동 설치 셀레니움으로 브라우저를 제어하려면 별도의 드라이버가 필요하다. 드라이버 종류나 버전에 맞게 설치를 해야하는데, chromedriver_autoinstaller를 사용하면 편하다. 설치: $ pip install chromedriver-autoinstaller 사용: from selenium import webdriver import chromedriver_autoinstaller chrome_filename = chromedriver_autoinstaller.utils.get_chromedriver_filename() chrome_ver = chromedriver_autoinstaller.get_chrome_version().split('.')[0] try: driver = webdriver.Chrome.. 2021. 12. 25.
Flask-SQLAlchemy에서 secondaryjoin 원하는 테이블끼리 직접적인 릴레이션이 없을 때, 한단계 거쳐서 가져와야할 때 사용. class User(db.Model): .... class Question(db.Model): ... users = db.relationship('User', secondary='answer', backref='answer.uid') class Answer(db.Model): uid = db.Column(db.String(36), db.ForeignKey('user.id', ondelete="CASCADE"), nullable=False) qid = db.Column(db.String(36), db.ForeignKey('question.id', ondelete="CASCADE"), nullable=False) stacko.. 2020. 12. 21.
파라메터를 정의하는 새로운 방법 3.8에 함수 파라메터를 정의하는 재밌는 방법이 추가됐다. '/'로 구분하면 그 뒤는 순서대로 넘기거나 키워드로 넘길 수 있다. def func(posonly1, posonly2, /, positional_or_keyword): ... 예) def func1(p1, p2, /, p3, p4): print(p1, p2, p3, p4) func1(1, 2, 3, 4) func1(1, 2, p3=3, p4=4) 3.7에서도 비슷한 방법이 있었는데, '*'로 구분해 그 뒤는 무조건 키워드로 넘겨야한다. def func(arg, *, kw_only1, kw_only2): ... 예) def func2(p1, p2, *, p3, p4): print(p1, p2, p3, p4) # func2(1, 2, 3, 4) 2020. 12. 7.