속담이 있습니다: "바퀴를 다시 만들 필요는 없습니다." Python 라이브러리가 이에 대한 가장 좋은 예입니다. 복잡하고 시간이 많이 걸리는 기능을 간단한 방법으로 작성하는 데 도움이 됩니다. 내가 아는 한, 좋은 프로젝트는 최고의 라이브러리를 사용합니다.
비트 목록을 반환하여 숫자를 이진수로 변환하는 함수를 작성하고 있습니다. @pysnooper.snoop()은 데코레이터를 추가하여 연구할 수 있습니다:
import pysnooper @pysnooper.snoop() def number_to_bits(number): if number: bits = [] while number: number, remainder = divmod(number, 2) bits.insert(0, remainder) return bits else: return [0] number_to_bits(6)
또는 전체 함수를 추적하고 싶지 않은 경우 관련 부분을 with 블록으로 래핑할 수 있습니다:
import pysnooper import random def foo(): lst = [] for i in range(10): lst.append(random.randrange(1, 1000)) with pysnooper.snoop(): lower = min(lst) upper = max(lst) mid = (lower + upper) / 2 print(lower, mid, upper) foo()
출력은 다음과 같습니다. :
New var:....... i = 9 New var:....... lst = [681, 267, 74, 832, 284, 678, ...] 09:37:35.881721 line10 lower = min(lst) New var:....... lower = 74 09:37:35.882137 line11 upper = max(lst) New var:....... upper = 832 09:37:35.882304 line12 mid = (lower + upper) / 2 74 453.0 832 New var:....... mid = 453.0 09:37:35.882486 line13 print(lower, mid, upper) Elapsed time: 00:00:00.000344
개발자로서 대부분의 시간은 디버깅에 소비됩니다. 이 라이브러리는 디버거입니다. 대부분의 사람들은 전략적 위치에서 인쇄 라인을 사용하며 그 중 일부는 변수 값을 표시합니다. 이 라이브러리는 올바른 인쇄 라인을 만드는 대신 관심 있는 기능에 데코레이터 라인을 추가한다는 점을 제외하면 동일한 작업을 수행합니다. 언제 실행된 라인과 로컬 변수가 변경된 시기를 포함하여 함수의 축어적 로그를 얻을 수 있습니다. GitHub에는 15,000개가 넘는 별이 있습니다.
프로젝트 주소: https://github.com/cool-RR/PySnooper
Human Python 작업 스케줄링. 친숙한 구문을 사용하여 정기적으로 Python 함수(또는 기타 호출 가능한 함수)를 실행합니다.
import schedule import time def job(): print("I'm working...") schedule.every(10).seconds.do(job) schedule.every(10).minutes.do(job) schedule.every().hour.do(job) schedule.every().day.at("10:30").do(job) schedule.every(5).to(10).minutes.do(job) schedule.every().monday.do(job) schedule.every().wednesday.at("13:15").do(job) schedule.every().day.at("12:42", "Europe/Amsterdam").do(job) schedule.every().minute.at(":17").do(job) def job_with_argument(name): print(f"I am {name}") schedule.every(10).seconds.do(job_with_argument, name="Peter") while True: schedule.run_pending() time.sleep(1)
이것은 인간을 위한 Python 작업 스케줄링 라이브러리입니다. 친숙한 구문을 사용하여 정기적으로 Python 함수(또는 기타 호출 가능)를 실행할 수 있습니다. 여기에는 주기적으로 작동하고(추가 프로세스가 필요하지 않음) 매우 가볍고, 외부 종속성이 없으며, 테스트 적용 범위가 좋은 in-process 스케줄러와 같은 많은 기능이 포함되어 있습니다. 이 라이브러리에는 GitHub에 10,000개가 넘는 별이 있습니다.
프로젝트 주소: https://github.com/dbader/schedule
"""Example usage of MechanicalSoup to get the results from the Qwant search engine. """ import re import mechanicalsoup import html import urllib.parse # Connect to Qwant browser = mechanicalsoup.StatefulBrowser(user_agent='MechanicalSoup') browser.open("https://lite.qwant.com/") # Fill-in the search form browser.select_form('#search-form') browser["q"] = "MechanicalSoup" browser.submit_selected() # Display the results for link in browser.page.select('.result a'): # Qwant shows redirection links, not the actual URL, so extract # the actual URL from the redirect link: href = link.attrs['href'] m = re.match(r"^/redirect/[^/]*/(.*)$", href) if m: href = urllib.parse.unquote(m.group(1)) print(link.text, '->', href)
이 라이브러리는 웹 사이트와의 자동 상호 작용을 실현하는 데 도움이 됩니다. 자동으로 쿠키를 저장 및 전송하고, 리디렉션을 추적하며, 링크를 따라가고 양식을 제출할 수 있습니다. 자바스크립트를 수행하지 않습니다. 이 라이브러리는 GitHub에서 4,000개가 넘는 별을 보유하고 있습니다.
프로젝트 주소: https://github.com/MechanicalSoup/MechanicalSoup
>>> from ftfy import fix_encoding >>> print(fix_encoding("(ง'⌣')ง")) (ง'⌣')ง
다음은 ftfy가 할 수 있는 일의 몇 가지 예입니다(실제 세계에서 발견):
ftfy는 분명히 UTF-8이지만 다른 문자로 디코딩되는 문자 패턴을 감지하여 mojibake(인코딩 난독화)를 수정할 수 있습니다.
>>> import ftfy >>> ftfy.fix_text('✔ No problems') '✔ No problems'
불가능한 것처럼 들리나요? 정말 그렇지 않습니다. UTF-8은 잘못 사용될 경우 명백하게 드러나도록 잘 설계된 인코딩이며 일반적으로 mojibake 문자열에는 원본 문자열을 복구하는 데 필요한 모든 정보가 포함되어 있습니다.
ftfy는 여러 레이어의 mojibake를 동시에 수정할 수 있습니다:
>>> ftfy.fix_text('The Mona Lisa doesn’t have eyebrows.') "The Mona Lisa doesn't have eyebrows."
위에 적용된 "곱슬 따옴표"로 mojibake를 수정할 수 있습니다. 따옴표가 확장되기 전에는 계속해서 디코딩할 수 없습니다.
>>> ftfy.fix_text("l’humanité") "l'humanité"
ftfy는 U 문자가 포함된 mojibake를 수정할 수 있습니다. mojibake의 +A0(줄바꿈 방지 공백), 그러나 U+A0은 ASCII 공백이 되고 다른 공백과 결합됩니다.
>>> ftfy.fix_text('Ãxa0 perturber la réflexion') 'à perturber la réflexion' >>> ftfy.fix_text('à perturber la réflexion') 'à perturber la réflexion'
ftfy는 엔터티의 대문자가 잘못 표시된 경우에도 HTML 외부에 나타나는 HTML 엔터티를 디코딩할 수도 있습니다. :
>>> # by the HTML 5 standard, only 'PÉREZ' is acceptable >>> ftfy.fix_text('PÉREZ') 'PÉREZ'
ftfy는 거짓 긍정을 방지한다는 확고한 목표를 갖고 있으므로 이러한 수정 사항이 모든 경우에 작동하지는 않습니다. 올바르게 디코딩된 텍스트를 다른 것으로 변경해서는 안 됩니다.
다음 텍스트는 Windows-1252에서 인코딩되고 UTF-8로 디코딩될 수 있으며 "MARQUɅ"로 디코딩됩니다. 단, 원문이 명확하므로 변경되지 않습니다.
>>> ftfy.fix_text('IL Y MARQUÉ…') 'IL Y MARQUÉ…'
이 라이브러리는 다양한 방식으로 손상된 유니코드를 수정하는 데 도움이 됩니다. 이 라이브러리의 목표는 잘못된 유니코드를 수신하고 유니코드 인식 코드에 사용할 수 있는 좋은 유니코드를 출력하는 것입니다. GitHub에는 별이 3,000개 이상 있습니다.
项目地址:https://github.com/rspeer/python-ftfy
这是一个透明的python库,用于对称的远程过程调用、集群和分布式计算。它利用对象代理这一技术,利用python的动态特性,克服进程和计算机之间的物理界限,使远程对象可以像本地一样被操作。这个库在GitHub上有超过1k颗星。
项目地址:https://github.com/tomerfiliba-org/rpyc
pyglet 的一些特性是:
import pyglet window = pyglet.window.Window() label = pyglet.text.Label('Hello, world!', font_size=36, x=window.width // 2, y=window.height // 2, anchor_x='center', anchor_y='center') @window.event def on_draw(): window.clear() label.draw() pyglet.app.run()
这是一个跨平台的Python窗口和多媒体库,用于开发游戏和其他视觉效果丰富的应用程序。它支持窗口化、用户界面事件处理、操纵杆、OpenGL图形、加载图像和视频,以及播放声音和音乐。它可以在Windows、OS X和Linux上运行。它在GitHub上有超过1千颗星。
项目地址:https://github.com/pyglet/pyglet
import rope.base.project myproject = rope.base.project.Project('/path/to/myproject')
这个库提供了强大而安全的重构。它包括轻度依赖性等特点,与PyRight或PyLance不同,它不依赖Node.js,完全由python编写,等等。它在GitHub上有超过1千颗星。
项目地址:https://github.com/python-rope/rope
文档地址:https://rope.readthedocs.io/en/latest/overview.html
위 내용은 7개의 매우 강력한 Python 라이브러리를 다시 얻었습니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!