写点什么

10 段实用 Python 代码,帮我省了几万块钱!

作者:Jackpop
  • 2022 年 6 月 15 日
  • 本文字数:4444 字

    阅读完需:约 15 分钟

hello,大家好,我是 Jackpop,硕士毕业于哈尔滨工业大学,曾在华为、阿里等大厂工作,如果你对升学、就业、技术提升等有疑惑,不妨交个朋友:


我是Jackpop,我们交个朋友吧!


编程语言的出现和演进都是为了直接或者简洁的改变工作效率,Python 的出现并非只能用于数据分析、机器学习。


如果仔细琢磨日常的工作 和生活,可以通过一些 Python 脚本大大的提升效率,同时还可以绕开很多收费工具,节省不少钱。


今天,我就来给大家介绍之前写过的一些杀手级脚本,真的是幸福感爆棚!

1. 图像编辑

使用这个自动化脚本,以编程方式编辑你的图像。


下面是我在编辑图片的常用功能,如模糊、旋转、翻转、合并等。


要实现这些功能,往常都需要安装一些臃肿的软件,但是,一个简单的 Python 脚本就可以轻松解决。


from PIL import Imagefrom PIL import ImageDraw# 合并图像img1 = Image.open('img101.jpg')img2 = Image.open('img102.jpg')combine = Image.blend(img1, img2, 0.5)# 调整图像大小resize = Image.open('img101.jpg')resize = resize.resize((300, 300))# 翻转图像flip_image = Image.open('img101.jpg')flip_image = flip_image.transpose(Image.FLIP_LEFT_RIGHT)# 模糊图像blur_image = Image.open('img101.jpg')blur_image = blur_image.filter(Image.BLUR)# 添加阴影shadow_image = Image.open('img101.jpg')shadow_image = shadow_image.filter(Image.EDGE_ENHANCE_MORE)# 裁剪图片crop_image = Image.open('img101.jpg')crop_image = crop_image.crop((50, 50, 300, 200))# 增加亮度bright_image = Image.open('img101.jpg')bright_image = bright_image.point(lambda p: p + 50)# 添加文字text_image = Image.open('img101.jpg')text_image = text_image.convert('RGB')draw = ImageDraw.Draw(text_image)draw.text((10, 10), "Hello World", (255, 255, 255))# 旋转图像rotate_image = Image.open('img101.jpg')rotate_image = rotate_image.rotate(90)# 保存图像img1.save('img101.jpg')
复制代码

2. 音频编辑

这个自动化脚本将为你编辑音频文件,你可以提取声音、合并声音、播放声音、分割/切割声音等等,通过这个脚本,终于可以扔掉那些付费软件了。


from pydub import AudioSegmentfrom pydub.utils import mediainfofrom pydub.playback import play# 从视频中提取声音sound = AudioSegment.from_file("video.mp4", format="mp4")sound.export("music.mp3", format="mp3")# 获取媒体信息info = mediainfo("musci.wav")print(info)# 播放音频play("music.mp3")# 合并音频sound1 = AudioSegment.from_file("music.mp3")sound2 = AudioSegment.from_file("music.mp3")combined = sound1 + sound2combined.export("music_combined.mp3", format="mp3")# 分割音频sound = AudioSegment.from_file("music.mp3", format="mp3")sound_1 = sound[:10000]sound_2 = sound[10000:]sound_1.export("music_1.mp3", format="mp3")sound_2.export("music_2.mp3", format="mp3")# 增大或减小音量sound = AudioSegment.from_file("music.mp3", format="mp3")sound_volumn = sound + 10sound_volumn.export("music_volumn.mp3", format="mp3")# 为音频添加静音sound = AudioSegment.from_file("music.mp3", format="mp3")sound_silence = sound + AudioSegment.silent(duration=1000)sound_silence.export("music_silence.mp3", format="mp3")
复制代码

3. 文件加解密

工作中,我们经常会产生一些重要的文件,需要限制阅读人员,那么这个脚本就可以提供帮助。


这个脚本使用密码学技术对你的文件进行加密,当你需要打开它们时,你可以使用密码解密它们。


这是一个非常安全的方法来锁定你的文件,因为在没有钥匙的情况下就没办法阅读。


from cryptography.fernet import Fernet# 加密函数def Lock_file(file_name, key):    with open(file_name, 'rb') as file:        data = file.read()    f = Fernet(key)    encrypted_data = f.encrypt(data)    with open(file_name, 'wb') as file:        file.write(encrypted_data)    print("File Lock...")   # 解密函数def Unlock_file(file_name, key):    with open(file_name, 'rb') as file:        data = file.read()    f = Fernet(key)    decrypted_data = f.decrypt(data)    with open(file_name, 'wb') as file:        file.write(decrypted_data)    print("File Unlock...")    key = input("Enter the key: ")Lock_file('test.txt', key)Unlock_file('test.txt', key)
复制代码

4. 录屏工具

录屏是现如今使用非常频繁的一类工具,但是,目前很多录屏软件都收费,有的导出时会在视频上添加水印。


所以,知乎上也经常看到有不少人迫切需求无水印、免费的录屏软件。


其实,一个 Python 脚本就可以搞定!


import pyautoguiimport numpy as npimport cv2import keyboarddef Screen_Recording():    while True:        # Press R to Start Recording        if keyboard.is_pressed('r'):            print("Recording Has been Started...")            # resolution            capture_area = (1920, 1080)                         codec = cv2.VideoWriter_fourcc(*'mp4v')            filename = "Your_Recording.mp4"            fps = 60.0            output_video = cv2.VideoWriter(filename, codec, fps, capture_area)            while True:                image = pyautogui.screenshot()                Image_frame = np.array(image)                Image_frame = cv2.cvtColor(Image_frame, cv2.COLOR_BGR2RGB)                output_video.write(Image_frame)                cv2.waitKey(1)                # Press Q button to Stop recording                if keyboard.is_pressed('q'):                    print("Recording Has been Stopped...")                    break            output_video.release()            cv2.destroyAllWindows()Screen_Recording()
复制代码

5. 从 PDF 中提取表格

从 PDF 中提取表格是一项复杂的任务,通过 OCR 技术效果一般都不太理想,手动重新建个表格工作量又比较大。


这个脚本将简单地从你的 PDF 中提取表格,它不仅 可以提取单个 PDF 的表格,还可以从多个 PDF 中一个一个地提取表格。


import camelottable = camelot.read_pdf('test.pdf', pages='1-2')# 获取表的总数print("Total tables: ", table.n) print(table[0].df)print(table[1].df)# 把表格导出为CSVtable[0].to_csv('table1.csv')table[1].to_csv('table2.csv')# 把表格导出为Exceltable[0].to_excel('table1.xlsx')# Export Table to HTMLtable[0].to_html('table1.html')# 一次性提取和导出表table.export('tables.csv', f='csv', compress=True)table[0].parse(['Date', 'Description', 'Amount'])
复制代码

6. 办公自动化

你是否想象过你也可以用 Python 将 MS Office 软件自动化?


Office 三件套 Word、PPT、Excel 是绝大多数人在工作和学习中都会用到的工具,但是,目前很多人还都是手动处理一些重复的工作,效率非常低。


这个脚本就可以解放你的双手,实现 MS Office 的自动化。


# Excel自动化import xlrdwb = xlrd.open_workbook('test.xlsx')worksheet = wb.sheet_by_index(0)# 根据行、列读取数据print(worksheet.cell_value(0, 0))# read whole rowprint(worksheet.row_values(0))# 读取整列print(worksheet.col_values(1))# 写入Excelworksheet.write(0, 0, 'Hello')wb.save('test.xlsx')# Word自动化import docx doc = docx.Document("zen_of_python.docx") # 逐段读取text = [p.text for p in doc.paragraphs]print(text)# 逐表读取for table in doc.tables:    for row in table.rows:        for cell in row.cells:            print(cell.text)# 写入Word文档doc.add_paragraph("Hello World")doc.save("test.docx")# PowerPoint自动化from pptx import Presentation# 浏览幻灯片PP = Presentation('file.pptx')for slide in PP.slides:    for shape in slide.shapes:        for paragraph in shape.text_frame.paragraphs:            for data in paragraph.runs:                print(data.text)# 写入PPTPP = Presentation()title_slide_layout = PP.slide_layouts[0]slide = PP.slides.add_slide(title_slide_layout)title = slide.shapes.titletitle.text = "Medium Article"PP.save('file.pptx')
复制代码

7. 图片转 PDF

这个简单的自动化脚本帮助你将你的图像转换为 PDF 格式。


from PIL import Imagedef Images_Pdf(filename, output):    images = []for file in filename:        im = Image.open(file)        im = im.convert('RGB')        images.append(im)        images[0].save(output, save_all=True, append_images=images[1:])Images_Pdf(["test1.jpg", "test2.jpg", "test3.jpg"], "output.pdf")
复制代码

8. 文本转语音

它使用谷歌文本转语音 API,将你的文本内容转换为人工智能机器人的声音。


from pygame import mixerfrom gtts import gTTSdef main():   tts = gTTS('Like This Article')   tts.save('output.mp3')   mixer.init()   mixer.music.load('output.mp3')   mixer.music.play()    if __name__ == "__main__":   main()
复制代码

9. 图片压缩

有些网站会对图片的大小进行严格的限制,比如,一些报考网站。


这时候,就需要用到图片压缩工具。


但是,很多压缩工具对图片的质量影响较大。


这个脚本把你的照片压缩成较小的尺寸而质量不变。


import PILfrom PIL import Imagefrom tkinter.filedialog import *fl=askopenfilenames()img = Image.open(fl[0])img.save("result.jpg", "JPEG", optimize = True, quality = 10)
复制代码

10. 图像加水印

这个简单的脚本可以给任何图片加水印。


你可以设置文本、位置和字体。


from PIL import Imagefrom PIL import ImageFontfrom PIL import ImageDrawdef watermark_img(img_path,res_path, text, pos):    img = Image.open(img_path)    wm = ImageDraw.Draw(img)    col= (9, 3, 10)    wm.text(pos, text, fill=col)    img.show()    img.save(res_path)img = 'initial.jpg'watermark_img(img, 'result.jpg','IshaanGupta', pos=(1, 0))
复制代码


上面介绍了 10 个场景,都是日常工作和生活中经常会遇到的。之前大多数同学都会选择寻求一些繁琐的工具,甚至付费,最终效果也不太理想。


通过简单的 Python 脚本,其实就可以彻底解决我们的问题,还可以解放双手,大大的提高效率,感兴趣的赶紧试一下吧!

发布于: 刚刚阅读数: 4
用户头像

Jackpop

关注

还未添加个人签名 2020.09.16 加入

公众号:平凡而诗意,微信:code_7steps,全网粉丝超20万,技术进阶、优质资源、实用工具,欢迎关注!

评论

发布
暂无评论
10段实用Python代码,帮我省了几万块钱!_Jackpop_InfoQ写作社区