10个Python自动化脚本,简化日常工作任务,看看有没有适合你的!
在这个属于人工智的时代,你是否每天都需要手动执行那些乏味耗时的任务。其实我们可以使用Python来对它们进行自动化,解放你的双手。本文将向你展示 10 个 Python 脚本,能够让你的日常工作自动化。话不多说,我们直接上干货!
在这个属于人工智的时代,你是否每天都需要手动执行那些乏味耗时的任务。其实我们可以使用Python来对它们进行自动化,解放你的双手。本文将向你展示 10 个 Python 脚本,能够让你的日常工作自动化。所以将这篇文章加入你的收藏夹吧!
话不多说,我们直接上干货!
1. 创建 WiFi 二维码
如果你经常忘记你的 Wifi 密码,那你可以利用这个脚本制作一个二维码,以后可以随时轻松扫描并连接,或与你的朋友或任何人分享。这个 Python 脚本使用 Qrcode
模块,它帮助你通过简单的信息(如你的 wifi 名称和密码)创建你的 Wifi 二维码。是不是挺有意思的?立即试试吧😎。
# pip install qrcode import qrcode def wifi_qr_generator(wifi_name, password, encrption='WPA'): wifi_template = f'WIFI:S:{wifi_name};T:{encrption};P:{password};;' qr = qrcode.QRCode( version=1, box_size=10, border=4, ) qr.add_data(wifi_template) qr.make(fit=True) qr_img = qr.make_image(fill='black', back_color='white') qr_img.save('wifi_qr.png') if __name__ == '__main__': wifi_qr_generator('jackzhang', 'jackzhang110')
运行上面的脚本,将会在当前目录下生成一个二维码,用微信扫描将会得到 WiFi 名称和密码,如果用手机自带的二维码扫描功能的话会直接跳出弹窗询问你是否连接到该无线网。
2. 图片背景移除
不需要 Photoshop 或任何付费的网络应用程序来删除照片的背景。现在你可以用 Python 轻松完成。下面的脚本使用 Rembg
模块,将向你展示如何去除任意图像的背景。
当我有很多图片需要去除背景时,我就喜欢这个脚本,建议你一定要试试看。😁
# pip install rembg import rembg as rm def image_bg_remover(file_name): output_path = 'bg_remove.png' with open(file_name, 'rb') as input_file: input_image = input_file.read() output_data = rm.remove(input_image) with open(output_path, 'wb') as output_file: output_file.write(output_data) print('Background removed successfully!') if __name__ == '__main__': file_name = r"your_image_path" image_bg_remover(file_name)
注意,首次运行该脚本,需要下载下面的工具(自动下载),之后再运行就不需要下载了:
原图-移除背景前
移除背景后
感觉效果还不错。
3. PDF 转换 CSV
如果你想将你的 PDF 表转换为 CSV,可以考虑使用这个简单的 Python 脚本,它使用 Camelot
获取 PDF 文件中的简单和复杂表格,并使用 Pandas 模块将获取到的表格保存在 CSV 文件中。立即试试看吧 😄。
# pip install camelot-py # pip install ghostscript import camelot import pandas as pd if __name__ == '__main__': file_name = 'test.pdf' tables = camelot.read_pdf(file_name, pages='all') # Convert pdf to csv for i in range(len(tables)): tables[i].to_csv('table' + str(i) + '.csv') # Merge all csvs df = pd.concat([pd.read_csv('table' + str(i) + '.csv') for i in range(len(tables))]) df.to_csv('output.csv', index=False) print('PDF to CSV done!')
注意,要运行该脚本,除了在 Python 环境安装 ghostscript
库外,还需要安装 Ghostscript 软件(https://ghostscript.com/releases/gsdnld.html),笔者是Windows环境:
安装完成后,将其 bin文件夹添加到系统环境变量 path 中,然后重启IDE再次运行程序才会成功。
4. 给文件上锁
工作中,难免会遇到别人有意或无意查看自己的重要文件,这个时候你会在想要是能给文件上把锁就好了。这样别人在没获得你授权的前提下就不能查看你的文件。这个目的可以通过 Python 完成。下面的脚本使用 PyAesCrypt
模块,向你展示如何使用密码锁定和解锁文件。拿走即用,赶快试试吧。
# pip install pyAesCrypt import pyAesCrypt as pac import os def locking(file_name, passwd): pac.encryptFile(file_name, file_name + '.lock', passwd) os.remove(file_name) print(f'Locking file {file_name} done!') def unlocking(file_name, passwd): original = file_name.replace('.lock', '') pac.decryptFile(file_name, original, passwd) os.remove(file_name) print(f'Unlocking file {file_name} done!') if __name__ == '__main__': locking('myfile.txt', 'passwd110') # unlocking('myfile.txt.lock', 'passwd110')
假设 “myfile.txt” 文件包含文本内容:Locking and unlocking file demo!
执行 locking
方法后,你将会看到该文件图标变成了一把锁的样子,且如果打开文件后会看到内容全是乱码:
注释 locking
方法,执行 unlocking
方法后就可以得到原始文件。
5. 批量扫描二维码
想象一下,如果你有很多二维码,你会一个个扫描它们吗?肯定不会,因为那会显得很愚蠢,且事倍功半,为什么不借助自动化实现呢。你可以使用下面的脚本完成,该脚本使用 Pyzbar
模块,可以帮助你扫描二维码图像并显示它们的数据。😁
# pip install pyzbar pillow opencv-python from pyzbar.pyzbar import decode from PIL import Image import cv2 def scan_qr(qr_img): # Load QR image img = cv2.imread(qr_img) # Decode the QRCode data = decode(Image.fromarray(img)) # Save the data qr_data = data[0].data.decode('utf-8') print(f'QR Code Data: {qr_data}') if __name__ == '__main__': scan_qr('wifi_qr.png')
就拿我们前面生成的 WiFi 二维码图片做测试文件,执行该脚本后会输出 WiFi 的账号密码信息。如果你有很多二维码图片,只需要在外面套一层循环即可轻松实现批量扫描。
6. 迷你视频编辑器
正在寻找在线视频编辑软件?赶紧停下来吧!现在你可以使用 Python 制作迷你视频编辑器。这个脚本使用了 Moviepy
模块,该模块以其视频处理任务而闻名。你可以裁剪、调整大小、合并、添加视觉效果、添加音频和编辑视频设置,如速度、音量等等。尽情展现你的创意,探索这个模块吧 😄
# pip install moviepy from moviepy.editor import * from moviepy.video.fx import all from moviepy.config import change_settings change_settings({"IMAGEMAGICK_BINARY": r"C:\Program Files\ImageMagick-7.1.1-Q16-HDRI\magick.exe"}) class VideoEditor: def __init__(self, video_file): self.video_file = video_file # Load video file def load_video(self): video = VideoFileClip(self.video_file) return video # Print video information def get_video_info(self, video): print(f'Video size: {video.size}') print(f'Video duration: {video.duration}') print(f'Video fps: {video.fps}') print(f'Video audio: {video.audio}') # Trim video def trim_video(self, video): video = video.subclip(0, 10) return video # Resize video def resize_video(self, video): video = video.Resize((640, 480)) return video # Flip video def flip_video(self, video): video = video.fx(vfx.mirror_x) return video # Rotate video def rotate_video(self, video): video = video.fx(vfx.rotate, 90) return video # Merge videos def merge_videos(self, video1_file, video2_file): video1 = VideoFileClip(video1_file) video2 = VideoFileClip(video2_file) merged_video = concatenate_videoclips([video1, video2]) merged_video.write_videofile('merge_video.mp4') # Add audio to video def add_audio_to_video(self, audio_file, video): video = video.set_audio(audio_file) return video # Add text to video def add_text_to_video(self, text, video): # The parameter 'font' is to support Chinese character txt = TextClip(text, fontsize=40, color='white', font='华文仿宋') txt = txt.set_pos('center').set_duration(10) txt = txt.set_duration(video.duration) txt = txt.set_position('center') final = CompositeVideoClip([video, txt]) return final # Add image to video def add_image_to_video(self, image, video): img = ImageClip(image) img = img.set_duration(10) img = img.set_position(('center', 'center')) final = CompositeVideoClip([video, img]) return final # Add transition to video def add_trans_to_video(self, video1_file, video2_file): video1 = VideoFileClip(video1_file) video2 = VideoFileClip(video2_file) transition = vfx.crossfade(video1, video2, 1) return transition # Add effect to video def add_effect_to_video(self, video): video = video.fx(vfx.colorx, 0.5) return video # Set the speed of video def set_speed_of_video(self, video): video = video.fx(vfx.speedx, 2) return video # Convert images to video def convert_image_to_video(self, img1, img2): img1 = ImageClip(img1) img2 = ImageClip(img2) img1 = img1.set_duration(5) img2 = img2.set_duration(5) video = concatenate_videoclips([img1, img2]) return video # Save video def save_video(self, video, video_name): video.write_videofile(f'{video_name}.mp4') print(f'Video saved at {video_name}.mp4') if __name__ == '__main__': video_file = r"线性代数教程1——向量简介.mp4" image_path = r"向量简介-封面.jpg" ve = VideoEditor(video_file) video = ve.load_video() ve.get_video_info(video) # 添加封面 video_img = ve.add_image_to_video(image_path, video) # 添加标题信息 video_text = ve.add_text_to_video(text='线性代数教程1:向量基础简介', video=video_img) ve.save_video(video_text, '线性代数教程1——向量简介')
注意运行该脚本前需要安装 ImageMagick,并且将安装路径添加到系统环境变量中,否则会报错。添加了环境变量后如果仍然报错,可以像笔者这样在脚本中指定路径:change_settings({"IMAGEMAGICK_BINARY": r"C:\Program Files\ImageMagick-7.1.1-Q16-HDRI\magick.exe"})
。在上面的测试中,我们向视频添加了一个封面,然后增加了一个标题信息,都可以正常实现。你还可以按自己的想法添加别的东西,不过注意,调用方法越多程序运行时间越长。
7. 饮水通知器
使用这个饮水通知器脚本可以让自己每天保持水分充足。大多数人会忘记喝水来保持全天身体和大脑的水分,但这个脚本使用 Pyler
模块,会在你需要喝水保持日常水分平衡时提醒你。
它会每小时在任务栏中发出通知,甚至告诉你一天中喝了多少杯水。
# pip install plyer from plyer import notification import time def water_notifier(glass_count, total_liters): notification.notify( title='Hydration Reminder', message=f'Time to drink water!' f'\nYou had {glass_count} glasses today.' f'\nTotal: {total_liters:.2f} liters.', timeout=10 ) if __name__ == '__main__': glass_count = 0 total_liters = 0.0 glass_size = 0.25 # 250 ML while True: glass_count += 1 total_liters += glass_size water_notifier(glass_count, total_liters) time.sleep(60 * 60) # 1 hour
8. 获取免费代理
无需再为 Python 项目或其他内容到处寻找免费代理啦。这个自动化脚本可以让你用几行代码就可以获取免费高质量代理。该脚本使用了 Freeproxy
模块,还可以让你从不同国家选择代理,甚至在 Http
和 Https
代理之间进行选择。
当你需要用于网络爬虫或网络自动化的代理时非常方便,赶快试试吧!😎
# pip install free-proxy from fp.fp import FreeProxy if __name__ == '__main__': # Get free proxies randomly proxy_random = FreeProxy().get() print(f'Random proxy: {proxy_random}') # Get free proxies by country proxy_country = FreeProxy(country_id=['US', 'GB']).get() print(f'Proxy by Country: {proxy_country}') # Get https proxies proxy_https = FreeProxy(https=True).get() print(f'Https proxy: {proxy_https}') # Get elite premium proxies proxy_elite = FreeProxy(elite=True).get() print(f'Elite proxy: {proxy_elite}') # Get proxy after checking proxy_check = FreeProxy(timeout=1).get() print(f'Check proxy: {proxy_check}') # Get Google proxies proxy_google = FreeProxy(google=True).get() print(f'Google proxy: {proxy_google}')
9. 制作炫酷的二维码
使用下面的脚本,通过 Segno
模块将文本和数据转换为二维码图像,创建自己酷炫时尚的二维码。该脚本还允许你制作 GIF、颜色、图像或为你的图像生成任何二维码。赶快动手制作起来吧!😉
# pip install segno qrcode-artistic import segno as qrcode if __name__ == '__main__': # Make simple QR code qr = qrcode.make('Hello Python!') qr.save('Simple_qr.png') # Make colorful QR code qr = qrcode.make('Hello Python!') img = qr.to_pil(dark='darkred', data_light='red', data_dark='blue', scale=10) img.save('Colorful_qr.png') # Make gif style QR code qr = qrcode.make('Hello Python!') gif = r"your_gif_path" qr.to_artistic(background=gif, target=gif, scale=10)
10. 语法修正工具
如果你不想使用谷歌著名的语法修正工具 Grammarly(扩展程序),那么可以在 Python 中创建自己的工具。这个脚本使用 LmProof
模块,帮助你构建一个完整的校对工具,可以纠正你文本中的语法和拼写错误。赶快试试看吧!😃。
# pip install lmproof import lmproof def grammar_fixer(text): proof_reader = lmproof.load('en') print(f'Original text: {text}') correct_text = proof_reader.proofread(text) print(f'Correct text: {correct_text}') if __name__ == '__main__': grammar_fixer('The foxes living on the shire')
黑客&网络安全如何学习
今天只要你给我的文章点赞,我私藏的网安学习资料一样免费共享给你们,来看看有哪些东西。
1.学习路线图
攻击和防守要学的东西也不少,具体要学的东西我都写在了上面的路线图,如果你能学完它们,你去就业和接私活完全没有问题。
2.视频教程
网上虽然也有很多的学习资源,但基本上都残缺不全的,这是我自己录的网安视频教程,上面路线图的每一个知识点,我都有配套的视频讲解。
内容涵盖了网络安全法学习、网络安全运营等保测评、渗透测试基础、漏洞详解、计算机基础知识等,都是网络安全入门必知必会的学习内容。
(都打包成一块的了,不能一一展开,总共300多集)
因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取
CSDN大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享
3.技术文档和电子书
技术文档也是我自己整理的,包括我参加大型网安行动、CTF和挖SRC漏洞的经验和技术要点,电子书也有200多本,由于内容的敏感性,我就不一一展示了。
因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取
CSDN大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享
4.工具包、面试题和源码
“工欲善其事必先利其器”我为大家总结出了最受欢迎的几十款款黑客工具。涉及范围主要集中在 信息收集、Android黑客工具、自动化工具、网络钓鱼等,感兴趣的同学不容错过。
还有我视频里讲的案例源码和对应的工具包,需要的话也可以拿走。
因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取
CSDN大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享
最后就是我这几年整理的网安方面的面试题,如果你是要找网安方面的工作,它们绝对能帮你大忙。
这些题目都是大家在面试深信服、奇安信、腾讯或者其它大厂面试时经常遇到的,如果大家有好的题目或者好的见解欢迎分享。
参考解析:深信服官网、奇安信官网、Freebuf、csdn等
内容特点:条理清晰,含图像化表示更加易懂。
内容概要:包括 内网、操作系统、协议、渗透测试、安服、漏洞、注入、XSS、CSRF、SSRF、文件上传、文件下载、文件包含、XXE、逻辑漏洞、工具、SQLmap、NMAP、BP、MSF…
因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取
更多推荐
所有评论(0)