Python 實用有趣又好玩的 Library

2023-12-28

筆記 Python 各式實用有趣又好玩的 Library,方便工作與流程的處理,豐富生活與科技結合的樂趣。

logo

說明

使用 XlWings 處理 Excel

import xlwings as xw

# Step 1: Create a new Excel workbook
wb = xw.Book()

# Step 2: Access the default worksheet
sheet = wb.sheets['Sheet1']

# Step 3: Write headers to Excel
sheet.range('A1').value = 'Name'
sheet.range('B1').value = 'Age'

# Step 4: Add sample data
data = [
    ['John', 30],
    ['Alice', 25],
    ['Bob', 35],
]

sheet.range('A2').value = data

# Step 5: Read data from Excel
read_data = sheet.range('A1:B4').value
print("Data read from Excel:")
for row in read_data:
    print(row)

# Step 6: Save and close the workbook
wb.save('example.xlsx')  # Save the workbook as 'example.xlsx'
wb.close()

使用 Matplotlib 繪圖

import xlwings as xw
import matplotlib.pyplot as plt

# Step 1: Create a new Excel workbook
wb = xw.Book()

# Step 2: Access the default worksheet
sheet = wb.sheets['Sheet1']

# Step 3: Write headers and data to Excel
sheet.range('A1').value = 'Name'
sheet.range('B1').value = 'Age'

data = [
    ['John', 30],
    ['Alice', 25],
    ['Bob', 35],
]

sheet.range('A2').value = data

# Step 4: Read data from Excel
read_data = sheet.range('A1:B4').value

# Step 5: Create a Matplotlib plot
names = [row[0] for row in read_data[1:]]
ages = [row[1] for row in read_data[1:]]

plt.bar(names, ages)
plt.xlabel('Name')
plt.ylabel('Age')
plt.title('Age Distribution')
plt.show()

# Step 6: Save and close the workbook
wb.save('example.xlsx')
wb.close()

使用 Pyechart 繪圖

pip install pyecharts
from pyecharts import options as opts
from pyecharts.charts import Bar

# Step 1: Create data for the bar chart
x_data = ["Category A", "Category B", "Category C", "Category D", "Category E"]
y_data = [120, 200, 150, 80, 250]

# Step 2: Create a Bar chart object and configure its attributes
bar = (
    Bar()
    .add_xaxis(x_data)
    .add_yaxis("Data", y_data)
    .set_global_opts(title_opts=opts.TitleOpts(title="Bar Chart Example"))
)

# Step 3: Render the chart to an HTML file
bar.render("bar_chart.html")

使用 wxPython 設計 GUI App

import wx

# Step 1: Create a new wx.App object
app = wx.App(False)

# Step 2: Create a wx.Frame (main window) for the application
frame = wx.Frame(None, wx.ID_ANY, "Hello World App")

# Step 3: Add a wx.Panel to the frame
panel = wx.Panel(frame, wx.ID_ANY)

# Step 4: Add a wx.StaticText widget to the panel
text = wx.StaticText(panel, wx.ID_ANY, "Hello, wxPython!", pos=(10, 10))

# Step 5: Show the main window
frame.Show(True)

# Step 6: Start the main event loop
app.MainLoop()

⭐ Alternative Option 使用 pyQt5 設計 GUI App

使用 OpenCV 處理圖形

pip install opencv-python
import cv2

# Step 1: Load an image from a file
image = cv2.imread('image.jpg')

# Step 2: Display the loaded image
cv2.imshow('Original Image', image)
cv2.waitKey(0)
cv2.destroyAllWindows()

# Step 3: Convert the image to grayscale
gray_image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)

# Step 4: Save the grayscale image to a file
cv2.imwrite('gray_image.jpg', gray_image)

使用 Tesseract 圖形辨識

from PIL import Image
import pytesseract

# Step 1: Open an image using Pillow
image = Image.open('image.png')

# Step 2: Perform text recognition using Tesseract
text = pytesseract.image_to_string(image)

# Step 3: Print the recognized text
print("Recognized Text:")
print(text)

使用 Wordcloud 製作文字雲

pip install wordcloud matplotlib
from wordcloud import WordCloud
import matplotlib.pyplot as plt

# Step 1: Create or load text data
text = "This is a simple example of creating a word cloud using Python. Word clouds are fun and informative."

# Step 2: Generate a word cloud
wordcloud = WordCloud(width=800, height=400).generate(text)

# Step 3: Display the word cloud using matplotlib
plt.figure(figsize=(10, 5))
plt.imshow(wordcloud, interpolation='bilinear')
plt.axis("off")
plt.show()