当前位置:   article > 正文

8个有趣易学的Python脚本程序,拿走码好练习!_python 程序简单

python 程序简单

Python可以做的事情很多,想要了解的可以戳这:学习python有什么好处?哪些人适合学习python?

今天要和大家分享8个好玩的脚本例子,初学者可以照着代码自己写写,在快速掌握Python语法的时候,还可以接触众多的第三方工具库。

一、使用PIL、Matplotlib、Numpy对模糊老照片进行修复

使用PIL、Matplotlib和Numpy进行老照片修复涉及到多个步骤。下面是一个简单的示例代码,用于对模糊老照片进行修复。这个代码实现了基本的去噪和锐化操作。为了获得更好的修复效果,大家还可以尝试使用更高级的算法或深度学习方法。

— 首先要确保已经安装了所需要的库,如果没有,使用pip install安装。

import numpy as np
import matplotlib.pyplot as plt
from PIL import Image, ImageFilter

# 读取图片并转换为灰度图
def load_image(image_path):
    img = Image.open(image_path)
    return img.convert("L")

# 对图片进行去噪处理
def denoise_image(image, weight=0.1):
    img_array = np.asarray(image, dtype=np.float32)
    out_array = img_array.copy()
    out_array[1:-1, 1:-1] = img_array[1:-1, 1:-1] * (1 - 4 * weight) + \
                            (img_array[:-2, 1:-1] + img_array[2:, 1:-1] + img_array[1:-1, :-2] + img_array[1:-1, 2:]) * weight
    return Image.fromarray(np.uint8(out_array), "L")

# 对图片进行锐化处理
def sharpen_image(image, radius=2, percent=150):
    return image.filter(ImageFilter.UnsharpMask(radius=radius, percent=percent, threshold=3))

# 显示图片
def display_image(image):
    plt.imshow(image, cmap="gray")
    plt.axis("off")
    plt.show()

# 主程序
def main():
    image_path = "path/to/your/image.jpg"  # 替换为你的图片路径

    # 加载图片
    image = load_image(image_path)

    # 对图片进行去噪处理
    denoised_image = denoise_image(image)

    # 对图片进行锐化处理
    sharpened_image = sharpen_image(denoised_image)

    # 显示原始图片
    print("原始图片:")
    display_image(image)

    # 显示修复后的图片
    print("修复后的图片:")
    display_image(sharpened_image)

if __name__ == "__main__":
    main()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50

上述代码,我们了解下思路:

  1. 加载图片并将其转换为灰度图。
  2. 对图片进行去噪处理,使用简单的加权平均算法。您可以尝试其他更复杂的去噪算法以获得更好的效果。
  3. 对图片进行锐化处理,使用Unsharp Mask算法。这可以帮助突出图片中的细节。
  4. 最后,显示原始图片和修复后的图片。

二、使用tkinter制作计算器GUI

我们做一个实现了基本的加、减、乘、除运算的计算器。

import tkinter as tk

class Calculator(tk.Tk):
    def __init__(self):
        super().__init__()

        self.title("简易计算器")
        self.geometry("400x400")

        self.result_var = tk.StringVar()

        self.create_widgets()

    def create_widgets(self):
        # 结果显示框
        result_entry = tk.Entry(self, textvariable=self.result_var, font=("Arial", 24), bd=20, justify="right")
        result_entry.grid(row=0, column=0, columnspan=4)

        # 数字按钮
        button_font = ("Arial", 14)
        button_bg = "#ccc"
        button_active_bg = "#aaa"
        for i in range(9):
            button = tk.Button(self, text=str(i + 1), font=button_font, bg=button_bg, activebackground=button_active_bg, command=lambda i=i: self.on_number_button_click(i + 1))
            button.grid(row=3 - i // 3, column=i % 3)

        zero_button = tk.Button(self, text="0", font=button_font, bg=button_bg, activebackground=button_active_bg, command=lambda: self.on_number_button_click(0))
        zero_button.grid(row=4, column=1)

        # 运算符按钮
        operators = [
            ("+", 0, 3),
            ("-", 1, 3),
            ("*", 2, 3),
            ("/", 3, 3),
            ("=", 4, 3)
        ]
        for operator, row, col in operators:
            button = tk.Button(self, text=operator, font=button_font, bg=button_bg, activebackground=button_active_bg, command=lambda operator=operator: self.on_operator_button_click(operator))
            button.grid(row=row, column=col)

        # 清除按钮
        clear_button = tk.Button(self, text="清除", font=button_font, bg=button_bg, activebackground=button_active_bg, command=self.on_clear_button_click)
        clear_button.grid(row=4, column=0)

        # 删除按钮
        delete_button = tk.Button(self, text="删除", font=button_font, bg=button_bg, activebackground=button_active_bg, command=self.on_delete_button_click)
        delete_button.grid(row=4, column=2)

    def on_number_button_click(self, number):
        current_result = self.result_var.get()
        if current_result == "0" or current_result[-1] in "+-*/":
            self.result_var.set(str(number))
        else:
            self.result_var.set(current_result + str(number))

    def on_operator_button_click(self, operator):
        current_result = self.result_var.get()
        if current_result[-1] in "+-*/":
            self.result_var.set(current_result[:-1] + operator)
        else:
            self.result_var.set(current_result + operator)

    def on_clear_button_click(self):
        self.result_var.set("0")

    def on_delete_button_click(self):
        current_result = self.result_var.get()
        if len(current_result) > 1:
            self.result_var.set(current_result[:-1])
        else:
            self.result_var.set("0")

    def on_equal_button_click(self):
        try:
            result = eval(self.result_var.get())
            self.result_var.set(str(result))
        except ZeroDivisionError:
            self.result_var.set
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79

三、将PDF转换为图像

下面是将所有pdf页转化成图像。

# PDF to Images
import fitz
pdf = 'sample_pdf.pdf'
doc = fitz.open(pdf)

for page in doc:
    pix = page.getPixmap(alpha=False)
    pix.writePNG('page-%i.png' % page.number)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

四、PDF文件转为word格式

依旧是要确保pdf2docx库的安装,如果没有使用命令pip install pdf2docx

下面是一个简单的使用pdf2docx库将PDF文件转换为Word格式的示例代码。小伙伴需要将输入和输出文件的路径替换为实际路径。

from pdf2docx import Converter

def convert_pdf_to_word(input_pdf, output_docx):
    # 创建一个PDF转换器对象
    pdf_converter = Converter(input_pdf)

    # 将PDF转换为docx文件
    pdf_converter.convert(output_docx)

    # 关闭转换器以释放资源
    pdf_converter.close()

if __name__ == "__main__":
    input_pdf = "path/to/your/input.pdf"     # 替换为实际的PDF文件路径
    output_docx = "path/to/your/output.docx" # 替换为实际的docx输出文件路径

    # 调用函数进行转换
    convert_pdf_to_word(input_pdf, output_docx)
    print("PDF文件已成功转换为Word格式.")
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19

代码说明:

  1. 从pdf2docx库中导入Converter类。
  2. 定义一个convert_pdf_to_word函数,该函数接受输入PDF文件路径和输出docx文件路径作为参数。
  3. 使用输入的PDF文件路径创建一个PDF转换器对象。
  4. 调用convert方法将PDF转换为docx文件。
  5. 关闭转换器以释放资源。
  6. __main__代码块中,定义输入PDF文件路径和输出docx文件路径,然后调用convert_pdf_to_word函数进行转换。

五、PDF加密和解密

如果你有N多个PDF文件需要加密,手动可能需要大半天甚至一天的时间。

但是,用Python的pikepdf模块,即可对文件进行加密,写一个循环就能进行批量加密文档。

# PDF加密
import pikepdf

pdf = pikepdf.open("test.pdf")
pdf.save('encrypt.pdf', encryption=pikepdf.Encryption(owner="your_password", user="your_password", R=4))
pdf.close()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

有加密那么便会有解密,代码如下。

# PDF解密
import pikepdf

pdf = pikepdf.open("encrypt.pdf",  password='your_password')
pdf.save("decrypt.pdf")
pdf.close()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

六、做一个炫酷的二维码

首先要安装myqr

pip install myqr
  • 1

我们找一个自己喜欢的图:

然后输入代码:

from MyQR import myqr
import os
 
version, level, qr_name = myqr.run(
    words="https://www.baidu.com",          # 可以是字符串,也可以是网址(前面要加http(s)://)
    version=1,                              # 设置容错率为最高
    level='H',                              # 控制纠错水平,范围是L、M、Q、H,从左到右依次升高
    picture="123.gif",                           # 将二维码和图片合成
    colorized=True,                         # 彩色二维码
    contrast=1.0,                           #用以调节图片的对比度,1.0 表示原始图片,更小的值表示更低对比度,更大反之。默认为1.0
    brightness=1.0,                         #用来调节图片的亮度,其余用法和取值同上
    save_name="3.gif",                     # 保存文件的名字,格式可以是jpg,png,bmp,gif
    save_dir=os.getcwd()                    #控制位置
)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

七、tushare(财经数据包)

安装

pip install tushare
  • 1

代码

import tushare as ts

#一次性获取最近一个日交易日所有股票的交易数据

ts.get_today_all()
  • 1
  • 2
  • 3
  • 4
  • 5

来看看结果

代码,名称,涨跌幅,现价,开盘价,最高价,最低价,最日收盘价,成交量,换手率
 code name     changepercent  trade   open high    low  settlement \
0 002738 中矿资源 10.023 19.32 19.32 19.32 19.32 17.56
1 300410 正业科技 10.022 25.03 25.03 25.03 25.03 22.75
2 002736 国信证券 10.013 16.37 16.37 16.37 16.37 14.88
3 300412 迦南科技 10.010 31.54 31.54 31.54 31.54 28.67
4 300411 金盾股份 10.007 29.68 29.68 29.68 29.68 26.98
5 603636 南威软件 10.006 38.15 38.15 38.15 38.15 34.68
6 002664 信质电机 10.004 30.68 29.00 30.68 28.30 27.89
7 300367 东方网力 10.004 86.76 78.00 86.76 77.87 78.87
8 601299 中国北车 10.000 11.44 11.44 11.44 11.29 10.40
9 601880 大连港 10.000 5.72 5.34 5.72 5.22 5.20
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

八、自动化阅读网页新闻

我们可以写一个脚本,实现从网页中抓取新闻,第二通过阅读工具来朗读。

为了完成这个任务,我们需要使用两个库:一个是用于网络抓取的库(如BeautifulSoup和requests),另一个是用于文本转语音的库(如gTTS)。

首先,需要大家确保已经安装了所需的库。如果没有,请使用以下命令安装:

pip install beautifulsoup4 requests gtts
  • 1

下面,看看代码:

import requests
from bs4 import BeautifulSoup
from gtts import gTTS
import os

# 爬取网页文本内容
def fetch_text_from_url(url):
    response = requests.get(url)
    soup = BeautifulSoup(response.content, "html.parser")

    # 从网页中提取文本内容
    # 这里我们只提取段落标签(<p>)中的文本,你可以根据需要修改
    paragraphs = soup.find_all("p")
    text = "\n".join([p.text for p in paragraphs])

    return text

# 将文本转换为语音并播放
def text_to_speech(text, language="en"):
    tts = gTTS(text=text, lang=language, slow=False)
    tts.save("temp_audio.mp3")

    # 播放生成的音频文件
    os.system("mpg123 temp_audio.mp3")

if __name__ == "__main__":
    url = "https://example.com/article"  # 将此替换为你想要抓取的网页URL

    # 抓取网页文本
    text = fetch_text_from_url(url)

    # 将抓取到的文本转换为语音并播放
    text_to_speech(text)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33

代码说明:

  1. 使用requests库获取网页内容,然后使用BeautifulSoup库解析HTML。
  2. 从HTML中提取所需的文本内容(在这个例子中,我们提取了所有段落标签<p>中的文本)。您可以根据实际需求更改此部分以提取特定内容。
  3. 使用gTTS库将提取的文本转换为语音。您可以设置不同的语言和速度。
  4. 将生成的音频保存到一个临时文件,然后使用os.system命令播放音频文件。在这个例子中,我们使用mpg123播放MP3文件,确保已经在您的系统上安装了该软件。

需要注意的是,为了播放音频文件,需要用一个mp3文件的播放器。我们使用了mpg123,但大家可以根据自己的操作系统和喜好选择其他播放器。

Python 的迅速崛起对整个行业来说都是极其有利的 ,但“人红是非多”,导致它平添了许许多多的批评,不过依旧挡不住它火爆的发展势头。

如果你对Python感兴趣,想要学习python,这里给大家分享一份Python全套学习资料,都是我自己学习时整理的,希望可以帮到你,一起加油!

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/天景科技苑/article/detail/756912
推荐阅读
相关标签