当前位置:首页 > 科技  > 软件

Python自动化:适合新手练习的五个有趣又实用的Python脚本,帮你快速掌握编程技能!拿走不谢!

来源: 责编: 时间:2024-06-27 17:20:34 77观看
导读实践永远是掌握一门技术的最佳方法。本文我将分享5个有趣且实用的Python脚本。新手可以跟着做,这将有助于你将理论应用于实践,并且帮助你快速掌握Python语法。通过你自己的努力创作出来的东西最后能产生实际作用,你也会

实践永远是掌握一门技术的最佳方法。本文我将分享5个有趣且实用的Python脚本。新手可以跟着做,这将有助于你将理论应用于实践,并且帮助你快速掌握Python语法。通过你自己的努力创作出来的东西最后能产生实际作用,你也会有成就感,进一步提升你的兴趣和学习的欲望。eL128资讯网——每日最新资讯28at.com

好了,话不多说,我们直接开始吧!eL128资讯网——每日最新资讯28at.com

恢复模糊的老照片

这个脚本将通过对 PIL、Matplotlib 以及 Numpy 几个库的运用,实现模糊老照片的恢复。这只是一个简单的示例代码,它执行基本的去噪和锐化操作。当然,在现在这个技术高速发达的时代,有很多便捷的工具可以实现这一目的,并且效果还会更好,比如机器学习和深度学习算法。因此,该脚本只是为了学习实践的目的。eL128资讯网——每日最新资讯28at.com

import numpy as npimport matplotlib.pyplot as pltfrom 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 = r'material_sets/blurred_image.jpg'        # 加载图像    image = load_image(image_path)    # 图像去噪    denoised_image = denoise_image(image)    # 图像锐化    sharpened_image = sharpen_image(denoised_image)        # 显示原始图像    print(f'Original image: {display_image(image)}')    # 显示处理后的图像    print(f'Processed image: {display_image(sharpened_image)}')    if __name__ == '__main__':    main()

图片图片eL128资讯网——每日最新资讯28at.com

从实现效果来看几乎没有什么变化,不要在意结果,我们的目的是掌握实现过程。eL128资讯网——每日最新资讯28at.com

以下是实现过程:eL128资讯网——每日最新资讯28at.com

  • 加载图像并将其转换为灰阶格式。
  • 使用一个简单的加权平均算法对图像进行去噪。如果想要更好的结果可以尝试更复杂的算法。
  • 使用反锐化蒙版算法来提升照片的清晰度,突出细节。
  • 最后,展示原始和复原图像。

2. 创建一个简单的计算器

在这个脚本中,我们将使用Python自带的图形开发库 tkinter 创建一个简单的计算器,实现基本的加减乘除运算功能。eL128资讯网——每日最新资讯28at.com

self.resut_value = tk.StringVar()    self.resut_value.set('0')        self.creat_widgets()    def creat_widgets(self):    # Result display    result_entry = tk.Entry(self,                             textvariable=self.resut_value,                            font=('Arial', 24),                            bd=20,                            justify='right')    result_entry.grid(row=0, column=0, columnspan=4, sticky='nsew')        # Number buttons    button_font = ('Arial', 14)    button_bg = '#ccc'    button_active_bg = '#aaa'    buttons = [        '7', '8', '9',        '4', '5', '6',        '1', '2', '3',        'Clear', '0', 'Delete'    ]    row_val = 1    col_val = 0    for button in buttons:        action = lambda x=button: self.on_button_click(x)        tk.Button(self, text=button, font=button_font,                   bg=button_bg, activebackground=button_active_bg,                   command=action).grid(row=row_val, column=col_val, sticky='nsew')        col_val += 1        if col_val > 2:            col_val = 0            row_val += 1                # Operator buttons    operators = ['+', '-', '*', '/', '=']    for i, operator in enumerate(operators):        action = lambda x=operator: self.on_operator_buttono_click(x)        if operator == '=':            tk.Button(self, text=operator, font=button_font,                   bg=button_bg, activebackground=button_active_bg,                   command=action).grid(row=i+1, column=0, columnspan=4, sticky='nsew')        else:            tk.Button(self, text=operator, font=button_font,                       bg=button_bg, activebackground=button_active_bg,                       command=action).grid(row=i+1, column=3, sticky='nsew')            # Configure row and columns to resize with window    for i in range(5):        self.grid_rowconfigure(i, weight=1)    for i in range(4):        self.grid_columnconfigure(i, weight=1)        def on_button_click(self, char):    if char == 'Clear':        self.resut_value.set('0')    elif char == 'Delete':        current_result = self.resut_value.get()        if len(current_result) > 1:            self.resut_value.set(current_result[:-1])        else:            self.resut_value.set('0')    else:        current_result = self.resut_value.get()        if current_result == '0':            self.resut_value.set(char)        else:            self.resut_value.set(current_result + char)            def on_operator_buttono_click(self, operator):    if operator == '=':        self.on_equal_butoon_click()    else:        current_result = self.resut_value.get()        if current_result[-1] in '+-*/':            self.resut_value.set(current_result[-1] + operator)        else:            self.resut_value.set(current_result + operator)            def on_equal_butoon_click(self):    try:        resut = eval(self.resut_value.get())        self.resut_value.set(str(resut))    except ZeroDivisionError:        self.resut_value.set('ZeroDivisionError!')    except Exception as e:        self.resut_value.set('Other Error!')

图片图片eL128资讯网——每日最新资讯28at.com

3. PDF 转图片

该脚本可以将PDF的所有页面转换为图片(一页一张图)。此外,执行该脚本前,请确保已经安装了 PyMuPDF 库。如果未安装,请在终端窗口通过 pip install PyMuPDF 命令安装:eL128资讯网——每日最新资讯28at.com

import osimport fitzif __name__ == '__main__':    pdf_path = r'your/path/to/sample.pdf'    doc = fitz.open(pdf_path)        save_path = 'your/path/to/pdf-to-images'    # Making it if the save_path is not exist.    os.makedirs(save_path, exist_ok=True)    for page in doc:        pix = page.get_pixmap(alpha=False)        pix.save(f'{save_path}/{page.number}.png')            print('PDF convert to images successfully!')

4. PDF 转 Word 文档

同样地,请确保你的环境已安装了必要的库 pdf2docx。如果未安装,通过 pip install pdf2docx 命令安装即可。下面这个简单的示例脚本通过 pdf2docx 实现 PDF 转 Word 文档。请将输入和输出文件路径替换成你自己的。eL128资讯网——每日最新资讯28at.com

from pdf2docx import Converterdef convert_pdf_to_word(input_pdf, output_docx):    # Create a PDF converter object    pdf_converter = Converter(input_pdf)        # Convret the PDF to a docx file    pdf_converter.convert(output_docx)        # Close the converter to release resources    pdf_converter.close()    if __name__ == '__main__':    input_pdf = r'material_sets/12-SQL-cheat-sheet.pdf'    output_docx = r'material_sets/12-SQL-cheat-sheet.docx'        convert_pdf_to_word(input_pdf, output_docx)    print('The PDF file has been successfully converted to Word format!')

图片图片eL128资讯网——每日最新资讯28at.com

原 PDF 文件eL128资讯网——每日最新资讯28at.com

图片图片eL128资讯网——每日最新资讯28at.com

转换为 Word 文档eL128资讯网——每日最新资讯28at.com

图片图片eL128资讯网——每日最新资讯28at.com

如果你细心观察的话,转换后,内容格式没有发生任何变化。Nice!

本文链接://www.dmpip.com//www.dmpip.com/showinfo-26-96999-0.htmlPython自动化:适合新手练习的五个有趣又实用的Python脚本,帮你快速掌握编程技能!拿走不谢!

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。邮件:2376512515@qq.com

上一篇: 掌握这四种方法,多线程按序执行不再是问题

下一篇: 高并发场景下到底应该创建多少线程?

标签:
  • 热门焦点
  • vivo TWS Air开箱体验:真轻 臻好听

    vivo TWS Air开箱体验:真轻 臻好听

    在vivo S15系列新机的发布会上,vivo的最新款真无线蓝牙耳机vivo TWS Air也一同发布,本次就这款耳机新品给大家带来一个简单的分享。外包装盒上,vivo TWS Air保持了vivo自家产
  • 6月安卓手机性能榜:vivo/iQOO霸占旗舰排行榜前三

    6月安卓手机性能榜:vivo/iQOO霸占旗舰排行榜前三

    2023年上半年已经正式过去了,我们也迎来了安兔兔V10版本,在新的骁龙8Gen3和天玑9300发布之前,性能榜的榜单大体会以骁龙8Gen2和天玑9200+为主,至于那颗3.36GHz的骁龙8Gen2领先
  • 服务存储设计模式:Cache-Aside模式

    服务存储设计模式:Cache-Aside模式

    Cache-Aside模式一种常用的缓存方式,通常是把数据从主存储加载到KV缓存中,加速后续的访问。在存在重复度的场景,Cache-Aside可以提升服务性能,降低底层存储的压力,缺点是缓存和底
  • 三言两语说透柯里化和反柯里化

    三言两语说透柯里化和反柯里化

    JavaScript中的柯里化(Currying)和反柯里化(Uncurrying)是两种很有用的技术,可以帮助我们写出更加优雅、泛用的函数。本文将首先介绍柯里化和反柯里化的概念、实现原理和应用
  • 微信语音大揭秘:为什么禁止转发?

    微信语音大揭秘:为什么禁止转发?

    大家好,我是你们的小米。今天,我要和大家聊一个有趣的话题:为什么微信语音不可以转发?这是一个我们经常在日常使用中遇到的问题,也是一个让很多人好奇的问题。让我们一起来揭开这
  • 梁柱接棒两年,腾讯音乐闯出新路子

    梁柱接棒两年,腾讯音乐闯出新路子

    文丨田静 出品丨牛刀财经(niudaocaijing)7月5日,企鹅FM发布官方公告称由于业务调整,将于9月6日正式停止运营,这意味着腾讯音乐长音频业务走向消亡。腾讯在长音频领域还在摸索。为
  • 三星Galaxy Z Fold5官方渲染图曝光:13.4mm折叠厚度依旧感人

    三星Galaxy Z Fold5官方渲染图曝光:13.4mm折叠厚度依旧感人

    据官方此前宣布,三星将于7月26日在韩国首尔举办Unpacked活动,届时将带来带来包括Galaxy Buds 3、Galaxy Watch 6、Galaxy Tab S9、Galaxy Z Flip 5、
  • Meta盲目扩张致超万人被裁,重金押注元宇宙而前景未明

    Meta盲目扩张致超万人被裁,重金押注元宇宙而前景未明

    图片来源:图虫创意日前,Meta创始人兼CEO 马克·扎克伯发布公开信,宣布Meta计划裁员超11000人,占其员工总数13%。他公开承认了自己的预判失误:“不仅
  • 北京:科技教育体验基地开始登记

    北京:科技教育体验基地开始登记

      北京“科技馆之城”科技教育体验基地登记和认证工作日前启动。首批北京科技教育体验基地拟于2023年全国科普日期间挂牌,后续还将开展常态化登记。  北京科技教育体验基
Top
Baidu
map