干货合集│最好用的 python 库都在这

本文涉及的产品
密钥管理服务KMS,1000个密钥,100个凭据,1个月
简介: 这些有趣的 python 库,可以让你爱上 python

一、分词 - jieba

  • 优秀的中文分词库,依靠中文词库,利用词库确定汉子之间关联的概率,形成分词结果
importjiebaword='伟大的中华人民共和国'jieba.cut(word)
jieba.lcut(word)


二、词云库 - wordcloud

  • 对数据中出现频率较高的 关键词 生成的一幅图像,予以视觉上的突出
importjiebaimportnumpyasnpimportPIL.ImageasImagefromwordcloudimportWordClouddefrun(word_path, picture_path):
withopen(word_path, 'r') asf:
word=f.read()
cut_word=' '.join(jieba.cut(word))
color_mask=np.array(Image.open(picture_path))
word_cloud=WordCloud(
# 设置字体,不指定就会出现乱码font_path='/System/Library/Fonts/PingFang.ttc',
# 设置背景色background_color='white',
# 词云形状mask=color_mask,
# 允许最大词汇max_words=120,
# 最大号字体max_font_size=2000    ).generate(cut_word)
word_cloud.to_file('word_cloud.jpg')
im=word_cloud.to_image()
im.show()


三、可视化进度条 - tpdm

  • 好看的进度条,不仅会让人一眼就知道任务的进度,还能够让自己的心情愉悦
fromtimeimportsleepfromtqdmimporttqdm# 这里同样的,tqdm就是这个进度条最常用的一个方法# 里面存一个可迭代对象foriintqdm(range(1, 500)):
# 模拟你的任务sleep(0.01)
sleep(0.5)


四、优美的表格 - PrettyTable

  • 可以让你在命令行打印出优美的表格
importprettytableaspt# 按行添加数据tb=pt.PrettyTable()
tb.field_names= ['name', 'age', 'height', 'weight']
tb.add_row(['亮仔', 25, 174, 65])
tb.add_row(['程序员', 23, 164, 55])
tb.add_row(['程序员亮仔', 27, 184, 69.5])
print(tb)
# +-----------+-----+--------+--------+# |    name   | age | height | weight |# +-----------+-----+--------+--------+# |     亮仔    |  25 |  174  |   65  |# |    程序员   |  23 |  164   |   55  |# |  程序员亮仔  |  27 |  184   |  69.5 |# +-----------+-----+--------+--------+


五、多进程 - multiprocessing

  • 创建多进程
frommultiprocessingimportProcessdeffunc(s):
print(s)
if__name__=='__main__':
process= [
Process(target=func, args=('1', ))
Process(target=func, args=('2', ))
  ]
  [p.start() forpinprocess]
  [p.join() forpinprocess]


六、多线程 - threading

  • 创建多线程
importthreadingdeffunc(s):
print(s)
if__name__=='__main__':
thread= [
threading.Thread(target=func, args=('1', ))
threading.Thread(target=func, args=('2', ))
  ]
  [t.start() fortinthread]
  [t.join() fortinthread]


七、谷歌翻译 - googletrans

  • 自动语言检测,批量翻译,语言检测等
fromgoogletransimportTranslatortranslator=Translator()
# 未提供源语言以及翻译的最终语言,会自动翻译成英文translator.translate('안녕하세요.')
# 告诉它翻译成什么语言translator.translate('안녕하세요.', dest='ja')
# 告诉它源语言是什么translator.translate('程序员亮仔', src='zh-cn')
# 语言检测t=ttranslator.detect('이 문장은 한글로 쓰여졌습니다.')
t.lang


八、重复回调 - retrying

  • 如果请求失败,我们需要再重新进行进行请求,防止请求异常导致数据缺失
fromretryingimportretry@retry(stop_max_attempt_number=5)
defsay():
try:
cxyliangzaiexceptExceptionase:
# 可以将错误记录日志print(e)
raisesay()


九、游戏开发 - pygame

  • 实现 python 游戏的开发,可以开发各种大小型游戏
importpygame, sysfrompygame.localsimport*# 初始化pygamepygame.init()
# 设置窗口的大小,单位为像素screen=pygame.display.set_mode((500,400), 0, 32)
# 设置窗口的标题pygame.display.set_caption('用户事件监控')
# 设置背景screen.fill((255, 255, 255))
# 程序主循环whileTrue:
# 获取事件foreventinpygame.event.get():
# 判断事件是否为退出事件ifevent.type==QUIT:
# 退出pygamepygame.quit()
# 退出系统sys.exit()
# 获得键盘按下的事件  ifevent.type==KEYDOWN:
if(event.key==K_UPorevent.key==K_w):
print("上")
if(event.key==K_DOWNorevent.key==K_s):
print("下")
if(event.key==K_LEFTorevent.key==K_a):
print("左")
if(event.key==K_RIGHTorevent.key==K_d):
print("右")
# 按下键盘的Esc键退出if(event.key==K_ESCAPE):
# 退出pygamepygame.quit()
# 退出系统sys.exit()
# 获得鼠标当前的位置  ifevent.type==MOUSEMOTION:
print(event.pos)
# 获得鼠标按下的位置ifevent.type==MOUSEBUTTONDOWN:
print("鼠标按下:", event.pos)
# 获得鼠标抬起的位置ifevent.type==MOUSEBUTTONUP:
print("鼠标抬起:", event.pos) 
# 绘制屏幕内容pygame.display.update()


十、绘图教程 - turtle

  • 可以画出各种各样奇妙的图案,简直就是程序中的画板
fromturtleimport*colors= ['red', 'purple', 'blue', 'green', 'yellow', 'orange']
forxinrange(360):
pencolor(colors[x%6])
width(x/100+1)
forward(x)
left(59)


十一、数据分析 - pandas

  • 数据分析处理库,为解决数据分析任务而创建的,能够快速便捷地处理数据的函数和方法
importpandasaspdinfo=pd.read_csv("students.csv", encoding="utf-8")
# 查看数据框的一些属性:最大、最小、均值、四分位数等info.describe()
# 空值相关的操作pin=info["pin"]
pin_isnull=pd.isnull(pin) 
pin_isnull_list=info[pin_isnull] 
len(pin_isnull_list)
# 缺失值相关操作, 简单的处理办法就是过滤掉null值books=info["life_cycle_books"]
book_isnull=pd.isnull(books)
book_list_isnull=info["life_cycle_books"][book_isnull==False]
mean=sum(book_list_isnull) /len(book_list_isnull)
# 删除缺失值, 所有行na_info=info.dropna(axis=1)
# 删除缺失值, 可以指定列na_info=info.dropna(axis=0, subset= ["age", "name"])


十二、算法加密 - pycryto

  • pycryto 能实现大致 3 种类型的数据加密(单向加密、对称加密 和非对称加密),产生随机数,生成密钥对,数字签名
fromCrypto.HashimportSHA256hash=SHA256.new()
hash.update('Hello, World!')
# 使用digest()方法加密digest=hash.digest()
# 使用hexdigest()方法加密,该方法加密后是16进制的hexdigest=hash.hexdigest()
print(digest, hexdigest)


十三、操作 win 电脑 - pywin32

  • pywin32 包装了 Windows 系统的 Win32 API,能创建和使用 COM 对象和图形窗口界面
importwin32apiimportwin32conhid=win32gui.WindowFromPoint((100, 100))
# 获取窗口标题title=win32gui.GetWindowText(hid)
# 获取窗口类名class_name=win32gui.GetClassName(hid)
# 模拟鼠标在(400, 500)位置进行点击操作point= (400, 500)
win32api.SetCursorPos(point)
win32api.mouse_event(win32con.MOUSEEVENTF_LEFTDOWN, 0, 0)
win32api.mouse_event(win32con.MOUSEEVENTF_LEFTUP, 0, 0)


十四、自动程序测试 - Selenium

  • Selenium 是一个用于 Web 应用程序测试的工具。Selenium 测试直接运行在浏览器中,就像真正的用户在操作一样
fromseleniumimportwebdriverfromselenium.webdriverimportActionChainsfromselenium.webdriver.common.byimportByfromselenium.webdriver.support.waitimportWebDriverWaitfromselenium.webdriver.supportimportexpected_conditionsasEC# 初始化谷歌浏览器driver=webdriver.Chrome()
# 最大化窗口driver.maximize_window()
# 打开头条登陆网址driver.get('https://sso.toutiao.com')
# 等待某个元素是否出现WebDriverWait(self.driver, 10).until(
EC.text_to_be_present_in_element((By.XPATH, '//*[@id="mobile-code-get"]/span'), u'发送')
)
# 实例化鼠标操作action=ActionChains(self.driver)
# 按住滑块action.click_and_hold(self.driver.find_element_by_xpath('//*[@id="captcha_container"]')).perform()
# 将滑块移动x的距离action.move_by_offset(xoffset=x, yoffset=0).perform()
# 释放滑块action.release().perform()


十五、音频播放 - mp3play

  • 一款超级小型的音频操作库,可以实现播放音乐,按空格键实现暂停和播放的切换
importmp3playclip=mp3play.load('music.mp3')
clip.play()


十六、网页解析 - BeautifulSoup

  • 是一个网页解析库,能够快速的分析网页结构
frombs4importBeautifulSoupsoup=BeautifulSoup('<p class="name nickname user"><b>i am cxyliangzai</b></p>', 'html.parser')
#获取整个p标签的html代码print(soup.p)
#获取b标签print(soup.p.b)
#获取p标签内容,使用NavigableString类中的string、text、get_text()print(soup.p.text)
#返回一个字典,里面是多有属性和值print(soup.p.attrs)
#查看返回的数据类型print(type(soup.p))
#根据属性,获取标签的属性值,返回值为列表print(soup.p['class'])
#给class属性赋值,此时属性值由列表转换为字符串soup.p['class']=['Web','Site']
print(soup.p)


十七、日志处理 - logging

  • 打印和记录日志
importlogginglogging.basicConfig(filename='logging.text', level=logging.DEBUG)
logging.debug('It is a debug')
logging.info('It is a  info')
logging.warning('It is a  warning')


十八、图像处理 - PIL

  • 非常适合于图像归档以及图像的批处理任务。可以使用 PIL 创建缩略图,转换图像格式,打印图像等等
fromPILimportImageim=Image.open("picture.jpg")
new_im=im.convert('L')
print(new_im.mode)
new_im.show()


十九、发送邮件 - yagmail

  • 是一种非常简单用来实现自动发邮件功能的包,可以实现给单人或者多人同时发送邮件
importyagmail# 链接邮箱服务器yag=yagmail.SMTP( user='邮箱地址', password='登录密码', host='smtp.163.com')
# 邮箱正文contents= ['邮件第一行内容', '邮件第二行内容', '邮件第三行内容']
# 给用户发送邮件并添加多个附件yag.send(['目标邮箱地址1', '目标邮箱地址2', '目标邮箱地址3'], '邮件标题', contents, ['c://附件.pdf', 'c://picture.jpg'])


二十、源码打包 - pyinstaller

  • 将源码打包成exe文件,直接在window上运行
pyinstaller-F-w-p ./lib-ilogo.icomain.py
相关文章
|
5天前
|
调度 开发者 Python
Python中的异步编程:理解asyncio库
在Python的世界里,异步编程是一种高效处理I/O密集型任务的方法。本文将深入探讨Python的asyncio库,它是实现异步编程的核心。我们将从asyncio的基本概念出发,逐步解析事件循环、协程、任务和期货的概念,并通过实例展示如何使用asyncio来编写异步代码。不同于传统的同步编程,异步编程能够让程序在等待I/O操作完成时释放资源去处理其他任务,从而提高程序的整体效率和响应速度。
|
8天前
|
数据采集 存储 数据挖掘
Python数据分析:Pandas库的高效数据处理技巧
【10月更文挑战第27天】在数据分析领域,Python的Pandas库因其强大的数据处理能力而备受青睐。本文介绍了Pandas在数据导入、清洗、转换、聚合、时间序列分析和数据合并等方面的高效技巧,帮助数据分析师快速处理复杂数据集,提高工作效率。
29 0
|
1天前
|
数据库 Python
异步编程不再难!Python asyncio库实战,让你的代码流畅如丝!
在编程中,随着应用复杂度的提升,对并发和异步处理的需求日益增长。Python的asyncio库通过async和await关键字,简化了异步编程,使其变得流畅高效。本文将通过实战示例,介绍异步编程的基本概念、如何使用asyncio编写异步代码以及处理多个异步任务的方法,帮助你掌握异步编程技巧,提高代码性能。
11 4
|
1天前
|
API 数据处理 Python
探秘Python并发新世界:asyncio库,让你的代码并发更优雅!
在Python编程中,随着网络应用和数据处理需求的增长,并发编程变得愈发重要。asyncio库作为Python 3.4及以上版本的标准库,以其简洁的API和强大的异步编程能力,成为提升性能和优化资源利用的关键工具。本文介绍了asyncio的基本概念、异步函数的定义与使用、并发控制和资源管理等核心功能,通过具体示例展示了如何高效地编写并发代码。
8 2
|
7天前
|
数据采集 JSON 测试技术
Python爬虫神器requests库的使用
在现代编程中,网络请求是必不可少的部分。本文详细介绍 Python 的 requests 库,一个功能强大且易用的 HTTP 请求库。内容涵盖安装、基本功能(如发送 GET 和 POST 请求、设置请求头、处理响应)、高级功能(如会话管理和文件上传)以及实际应用场景。通过本文,你将全面掌握 requests 库的使用方法。🚀🌟
27 7
|
23天前
|
网络协议 数据库连接 Python
python知识点100篇系列(17)-替换requests的python库httpx
【10月更文挑战第4天】Requests 是基于 Python 开发的 HTTP 库,使用简单,功能强大。然而,随着 Python 3.6 的发布,出现了 Requests 的替代品 —— httpx。httpx 继承了 Requests 的所有特性,并增加了对异步请求的支持,支持 HTTP/1.1 和 HTTP/2,能够发送同步和异步请求,适用于 WSGI 和 ASGI 应用。安装使用 httpx 需要 Python 3.6 及以上版本,异步请求则需要 Python 3.8 及以上。httpx 提供了 Client 和 AsyncClient,分别用于优化同步和异步请求的性能。
python知识点100篇系列(17)-替换requests的python库httpx
|
7天前
|
机器学习/深度学习 数据采集 算法
Python机器学习:Scikit-learn库的高效使用技巧
【10月更文挑战第28天】Scikit-learn 是 Python 中最受欢迎的机器学习库之一,以其简洁的 API、丰富的算法和良好的文档支持而受到开发者喜爱。本文介绍了 Scikit-learn 的高效使用技巧,包括数据预处理(如使用 Pipeline 和 ColumnTransformer)、模型选择与评估(如交叉验证和 GridSearchCV)以及模型持久化(如使用 joblib)。通过这些技巧,你可以在机器学习项目中事半功倍。
18 3
|
10天前
|
数据采集 数据可视化 数据处理
如何使用Python实现一个交易策略。主要步骤包括:导入所需库(如`pandas`、`numpy`、`matplotlib`)
本文介绍了如何使用Python实现一个交易策略。主要步骤包括:导入所需库(如`pandas`、`numpy`、`matplotlib`),加载历史数据,计算均线和其他技术指标,实现交易逻辑,记录和可视化交易结果。示例代码展示了如何根据均线交叉和价格条件进行开仓、止损和止盈操作。实际应用时需注意数据质量、交易成本和风险管理。
29 5
|
9天前
|
存储 数据挖掘 数据处理
Python数据分析:Pandas库的高效数据处理技巧
【10月更文挑战第26天】Python 是数据分析领域的热门语言,Pandas 库以其高效的数据处理功能成为数据科学家的利器。本文介绍 Pandas 在数据读取、筛选、分组、转换和合并等方面的高效技巧,并通过示例代码展示其实际应用。
20 1
|
18天前
|
数据可视化 数据挖掘 Python
Seaborn 库创建吸引人的统计图表
【10月更文挑战第11天】本文介绍了如何使用 Seaborn 库创建多种统计图表,包括散点图、箱线图、直方图、线性回归图、热力图等。通过具体示例和代码,展示了 Seaborn 在数据可视化中的强大功能和灵活性,帮助读者更好地理解和应用这一工具。
31 3

热门文章

最新文章