前言????
在開發(fā)過程中,筆者積累了許多實用的Python工具函數(shù)和模塊,決定將它們整理成一個工具庫集合,并與大家分享。本文將介紹筆者的Python工具庫集合的核心功能和用途,
在日常的Python開發(fā)中,筆者經(jīng)常遇到一些重復(fù)性任務(wù)和常見的問題。我開始將常用的Python工具函數(shù)記錄下來,以簡化這些任務(wù)并提供高復(fù)用的解決方案。隨著時間的推移,我逐漸形成了一個有用的工具庫集合( 當(dāng)然,還不夠完善?。?!)
逐漸地,這個工具庫集合對我來說非常實用,它簡化了我的工作流程,提供了高度復(fù)用的解決方案。筆者意識到,這些工具函數(shù)也可能對其他Python開發(fā)者有所幫助和啟發(fā)。
遂在這里給讀者做一下分享,希望這個工具庫集合能為讀者們提供一些便利和解決問題的思路。
工具庫概述
這是一個 非常接地氣的日常的Python工具庫,如常見的 日期處理、打開Json、Excel文件、保存文件、圖片處理、Windows窗口操作等等操作,它都有。
讀者朋友們可以在我的GitHub項目中找到完整的源代碼。鏈接:https://github.com/Frica01/python-utils
項目組織????
目前工具庫的各種工具如下所示,當(dāng)然,我將繼續(xù)維護和更新我的Python工具庫集合,以提供更多功能和改進現(xiàn)有功能。
工具庫的功能如下所示,基本上看文件 utils文件的名稱,就可以知道該文件有什么功能。
python-utils/
├── utils/
│ ├── __init__.py
│ ├── config_utils.py
│ ├── date_utils.py
│ ├── docx_utils.py
│ ├── excel_utils.py
│ ├── file_utils.py
│ ├── html_utils.py
│ ├── json_utils.py
│ ├── network_utils.py
│ ├── os_utils.py
│ ├── pdf_utils.py
│ ├── photo_utils.py
│ ├── string_utils.py
│ ├── window_utils.py
│ └── more_utils.py
├── installer.py
├── main.py
├── LICENSE
├── README.md
└── requirements.txt
說明:
-
python-utils/
是項目的根目錄。 -
utils/
是存放工具模塊的目錄。 -
__init__.py
是一個空文件,用于將utils
目錄標(biāo)記為 Python 包。 -
其他的
utils
模塊文件包括了各種功能的工具函數(shù)。 -
installer.py
是自動安裝模塊,可以用于為工具自動安裝依賴模塊。 -
main.py
是項目的入口文件,可以用于演示和測試工具模塊的功能。 -
LICENSE
是項目的許可證文件,用于聲明代碼的使用許可。 -
README.md
是項目的說明文件,可以在其中提供有關(guān)項目的詳細信息、使用說明等。 -
requirements.txt
是項目的依賴文件,列出了項目所需的第三方庫和版本信息。
部分代碼展示
date日期工具 (date_utils.py)
這個模塊包含了一些常用的日期和時間處理函數(shù)。它可以幫助你進行日期格式轉(zhuǎn)換、日期計算、時區(qū)轉(zhuǎn)換、獲取日期區(qū)間等操作。無論是處理時間戳、解析日期字符串還是格式化日期輸出,這個模塊都能提供便捷的功能。
from datetime import datetime, timedelta
def get_date_range(start_date, end_date, date_format='%Y-%m-%d', is_string=False) -> list:
"""
取日期范圍
"""
try:
start_date = datetime.strptime(start_date, date_format)
end_date = datetime.strptime(end_date, date_format)
except ValueError as e:
raise ValueError(f"Invalid date format: {e}")
date_list = list()
while start_date <= end_date:
if is_string:
date_list.append(start_date.strftime(date_format))
else:
date_list.append(start_date)
start_date += timedelta(days=1)
return date_list
def date_diff_days(start_date, end_date) -> int:
"""
計算兩個日期之間的差異
"""
try:
if isinstance(start_date, str):
start_date = start_date.replace('/', '-')
start_date = datetime.strptime(start_date, '%Y-%m-%d')
if isinstance(end_date, str):
end_date = end_date.replace('/', '-')
end_date = datetime.strptime(end_date, '%Y-%m-%d')
return (end_date - start_date).days
except ValueError:
raise ValueError(f"Invalid date format, input the YYYY-MM-DD")
def date_str_to_date(date_str: str, format_str='%Y-%m-%d') -> datetime:
"""
將日期字符串轉(zhuǎn)換為日期對象
"""
try:
return datetime.strptime(date_str, format_str)
except ValueError:
raise ValueError(f"Invalid date format, input the YYYY-MM-DD")
...
os文件工具 (os_utils.py)
這個模塊包含了一些常用的文件操作函數(shù)。這個模塊提供了一系列便利的文件操作函數(shù)。它可以幫助你讀取和寫入文件、復(fù)制和移動文件、創(chuàng)建和刪除目錄等。無論是處理文本文件、二進制文件還是目錄操作,這個模塊都提供了簡單而強大的功能。(待更新
import os
def check_file_exists(path: str) -> bool:
"""
檢查文件是否存在
"""
return os.path.exists(path=path)
def normalize_file_path(path: str) -> Union[str, bool]:
"""
標(biāo)準(zhǔn)化文件路徑
"""
if not check_file_exists(path):
return False
return os.path.normpath(path=path)
def join_file_path(base_path: str, file_name: str) -> Union[str, bool]:
"""
拼接文件路徑
"""
if not check_file_exists(base_path):
return False
return normalize_file_path(os.path.join(base_path, file_name))
...
功能展示 ????
生成PDF報告 (pdf_utils.py)
生成PDF報告是許多項目中常見的需求。我編寫了pdf_utils.py模塊,集成了PDF生成工具,并提供了簡潔的接口來創(chuàng)建和編輯PDF文檔,添加文本、圖像和表格等內(nèi)容。
示例代碼:
from utils import pdf_utils
pdf = pdf_utils.PDFReport()
pdf.add_text("Hello, world!")
pdf.add_image("logo.png")
pdf.add_table(data)
pdf.save("report.pdf")
dict保存為json
- 傳入對應(yīng)的Python的dict與保存的excel文件路徑,就可以保存為excel文件啦。
from utils import dict_to_excel
if __name__ == "__main__":
if __name__ == '__main__':
dict_to_excel(
data_dict={'name': ['張三', '李四', '王五'], 'age': [18, 19, 20]},
file_path='./demo.xlsx'
)
操作Windows窗口
- 這份代碼使用非常簡單,只需要傳入窗口的標(biāo)題即可(例如窗口為
微信
- 在做Python自動化時候,非常有用。
from utils import (
minimize_window,
maximize_window,
set_top_window,
close_window,
hide_window,
show_window
)
if __name__ == '__main__':
# 最大化窗口
minimize_window(title='微信')
# 最小化窗口
maximize_window(title='微信')
# 置頂窗口
set_top_window(title='微信')
# 關(guān)閉窗口
close_window(title='微信')
# 隱藏窗口
hide_window(title='微信')
# 顯示窗口
show_window(title='微信')
更新和未來計劃 ??
讀者朋友們可以在我的GitHub項目中找到完整的源代碼。鏈接:https://github.com/Frica01/python-utils
我將繼續(xù)維護和更新我的Python工具庫集合,以提供更多功能和改進現(xiàn)有功能。
同時,筆者計劃添加更多的示例代碼和文檔(準(zhǔn)備ing),幫助開發(fā)者更好地理解和使用這些工具。
并且鼓勵讀者們也加入其中,分享你們的工具函數(shù)或?qū)ΜF(xiàn)有函數(shù)的改進。通過集體的努力和貢獻,我們可以共同成長,共享知識,讓這個工具庫集合變得更加強大和有用。
使用建議 ????
基本上,代碼的注釋寫的都很清楚了。使用上看建議就足矣。
為了更好地使用筆者的Python工具庫集合,我提供以下使用建議:
- 在使用工具庫之前,閱讀相應(yīng)的文檔和示例代碼,以了解函數(shù)和模塊的用法;
- 及時更新工具庫,以獲取最新的功能和修復(fù)已知的問題;
- 如果您有任何問題、建議或發(fā)現(xiàn)了bug,歡迎隨時聯(lián)系筆者或提交 Issues。
后話
本次分享到此結(jié)束,文章來源:http://www.zghlxwxcb.cn/news/detail-478334.html
see you~~??????????文章來源地址http://www.zghlxwxcb.cn/news/detail-478334.html
到了這里,關(guān)于探索Python工具庫合集:提高開發(fā)效率的秘密武器的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!