精华内容
下载资源
问答
  • 1.简介(为啥需要导出为exe可执行程序)python写完的程序靠命令来执行,显得太专业,不符合python简单的特点(好吧,主要是太low)代码给别人执行,别人没有你的python库也没法(双击就能运行,方便大家,方便传播)2....

    1.简介(为啥需要导出为exe可执行程序)

    python写完的程序靠命令来执行,显得太专业,不符合python简单的特点(好吧,主要是太low)

    代码给别人执行,别人没有你的python库也没法用(双击就能运行,方便大家,方便传播)

    2.pyInstaller安装配置

    pip install pyinstaller

    会自动安装pyInstaller和pywin32

    3.打包

    打包的app里并不包含任何源码,但将脚本的.pyc文件打包了。

    基本语法:

    pyinstaller options myscript.py

    常用的可选参数如下:

    --onefile 将结果打包成一个可执行文件

    --onedir 将所有结果打包到一个文件夹中,该文件夹包括一个可执行文件和可执行文件执行时需要的依赖文件(默认)

    --paths=DIR 设置导入路径

    --distpath=DIR 设置将打包的结果文件放置的路径

    --specpath=DIR 设置将spec文件放置的路径

    --windowed 使用windows子系统执行,不会打开命令行(只对windows有效)

    --nowindowed 使用控制台子系统执行(默认)(只对windows有效)

    --icon= 将file.ico添加为可执行文件的资源(只对windows有效)

    4.制作exe

    利用CMD切换到需要打包的python文件目录下

    import math

    r = int(input("请输入半径:"))

    c = 2*math.pi*r

    s = math.pi*r*r

    print("周长是%s,面积是%s"%(c,s))

    input()

    执行

    pyinstaller -F 计算周长面积.py

    结果在当前目录下生产的dist目录下可以找到exe可执行文件

    执行结果

    可以使用,又学到了

    展开全文
  • 大家好,今天我们来制作一款有图形界面的翻译小软件,下面我们开始吧|Tkinter模块介绍tkinter模块是一款让我们有图形界面的库,是大部分初学者要学习的。|urllib包urllib包里一共有4个模块,第一个模块是最复杂也是...

    大家好,今天我们来制作一款有图形界面的翻译小软件,下面我们开始吧

    |Tkinter模块介绍

    tkinter模块是一款让我们有图形界面的库,是大部分初学者要学习的。

    |urllib包

    urllib包里一共有4个模块,第一个模块是最复杂也是最重要的,它包含了对服务器请求的发出、跳转、代理和安全等各方面。

    通过urllib.request.urlopen()就可以了

    但是我们发现,python爬取的是以utf-8编码的bytes对象,要对其进行解码,将他变成unicode:

    92cae89992b8f3ba7c759accf1e53545.png

    |实战:翻译

    在实战之前,以下3个函数你还会用到:

    ·geturl()——返回请求的url

    ·info()——返回一个httplib,HTTPMessage对象

    ·getcode()——fanhuiHTTP状态码

    下面开始了:

    我们要用到有道词典来翻译文本

    首先来到翻译官网(http://fanyi.youdao.com)出现这个画面:

    067f33d7933a7322009583e2cf59c186.png

    要使用浏览器的“检查元素”功能,切换到Network窗口,找到translate_o?这项,requestmethod应是POST:

    f94f1ecf6e3865321a773602afd638ad.png

    找到上图所示的headers,里面有各种信息

    这是我们就可以开始写代码了:

    import jsonfrom tkinter import *import requestsimport base64#翻译函数,el是要翻译的,res是翻译结果def translate(el,res):    content = el.get().strip()   #得到要翻译的内容    url = "http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule&smartresult=ugc&sessionForm=http://www.youdao.com/"   #传输参数    key = {        'from':'AUTO',        'to':'AUTO',        'i':content,        "smartresult":"dict",        "client":"fanyideskweb",        "version":"2.1",        "doctype":"json",        "keyform":"fanyi.web",        "ue":"UTF-8",        "action":"FY_BY_REALTIME",        }       #key字典发送给有道服务器    response = requests.post(url,data=key)    if response.status_code == 200:        response = response.text        #通过json.loads加载成json格式        result = json.loads(response)       #结果返回到文本框        res.set(result['translateResult'][0][0]['tgt'])       #判断是否发送成功'''    target = json.loads(html)    print("翻译结果:%s"%(target['translateResult'][0][0]['tgt']))''' #用做测试def tk():    root=Tk()    root.title("贤谈小栈翻译软件")    root.geometry('450x200')    Label(root,text='原文:').place(x=30,y=30)    Label(root,text='译文:').place(x=30,y=70)#设置焦点    el=Entry(root)    el.focus()    el.place(x=80,y=30,width=250,height=30)        res = StringVar()    e2 = Entry(root,textvariable=res)    e2.place(x=80,y=70,width=250,height=30)    Button(root,text='翻译',width=10,command=lambda:translate(el,res)).place(x=80,y=120)    Button(root,text='退出',width=10,command=root.quit).place(x=240,y=120)    #消息循环    mainloop()def main():    tk()if __name__ == '__main__':    main()

    |运行结果

    3be26649a832f22c8f94e8d8723cafa0.png

    结果

    |转换成exe

    转换exe有很多工具,这里用的pyinstaller

    cmd里使用pip:

    pip install pyinstaller

    如果觉得慢可以使用其他网站资源

    然后输入

    pyinstaller -F -w 文件位置:\fanyi.py

    就可以了

    生成的exe:

    d1c3faaa4705fc34f727fdc3474b959f.png

    |总结

    主要讲了python的爬虫,tkinter模块。如果你觉得有意思,赶紧点再看分享给身边的小伙伴吧!(本文原创不易)

    c0958e205d1b43e5c69bec088ab1b5ac.png

    展开全文
  • 妙…啊~~~今天要的东西,就是用python写一个截屏工具。想必大家平时截屏的时候很多都是用的微信的ALT+A或者是WINDOWS自带的截屏软件。作为技术宅的我,怎么总是用别人的东西呢?看我的,上图:效...

    前言

    今天我看了一下自己的文件夹,发现了自己写了许多似乎很无聊的代码。于是乎,一个想法油然而生:“生活已经很无聊了,不如再无聊一点叭”。

    说干就干,那就开一个专题,我们称之为kimol君的无聊小发明。

    妙…啊~~~

    今天要做的东西,就是用python写一个截屏工具。想必大家平时截屏的时候很多都是用的微信的ALT+A或者是WINDOWS自带的截屏软件。作为技术宅的我,怎么总是用别人的东西呢?

    看我的,上图:

    效果还阔以,好歹这个小猫咪截出来也是有模有样的~

    一、技术实现

    1. 相关库

    在python中可以实现截图的库有很多,这里我用的是pyautogui,它可以对指定区域进行截屏:

    import pyautogui

    而界面部分(截屏的框选等)采用了tkinter库:

    2. 定义窗口

    定义一个透明的窗口,让它的大小与屏幕一样:

    root = tk.Tk()

    root.overrideredirect(True) # 隐藏窗口的标题栏

    root.attributes("-alpha", 0.1) # 窗口透明度10%

    root.geometry("{0}x{1}+0+0".format(root.winfo_screenwidth(), root.winfo_screenheight()))

    root.configure(bg="black")

    注:alhpa参数用于设定透明度;geometry函数用于设定窗口大小;

    创建一个子窗口,用于显示框选区域:

    # 再创建1个Canvas用于圈选

    cv = tk.Canvas(root)

    x, y = 0, 0

    xstart,ystart = 0 ,0

    xend,yend = 0, 0

    rec = ''

    注:alhpa参数用于设定透明度;geometry函数用于设定窗口大小;

    创建一个子窗口,用于显示框选区域:

    # 再创建1个Canvas用于圈选

    cv = tk.Canvas(root)

    x, y = 0, 0

    xstart,ystart = 0 ,0

    xend,yend = 0, 0

    rec = ''

    3. 绘制工具条

    绘制一个工具条,方便后续增加功能。讲道理目前来说这个就是个鸡肋(可以省去),但是如果后续还想晚上功能的话,会很有帮助。

    canvas = tk.Canvas(root)

    canvas.configure(width=300)

    canvas.configure(height=100)

    canvas.configure(bg="yellow")

    canvas.configure(highlightthickness=0) # 高亮厚度

    canvas.place(x=(root.winfo_screenwidth()-500),y=(root.winfo_screenheight()-300))

    canvas.create_text(150, 50,font='Arial -20 bold',text='ESC退出,假装工具条')

    1234567

    4. 定义事件函数

    监听鼠标和键盘事件,实时监控框选区域和截屏,具体的事件有:

    # 绑定事件

    canvas.bind("", move) # 鼠标左键移动->显示当前光标位置

    root.bind('',sys_out) # 键盘Esc键->退出

    root.bind("", button_1) # 鼠标左键点击->显示子窗口

    root.bind("", b1_Motion)# 鼠标左键移动->改变子窗口大小

    root.bind("", buttonRelease_1) # 鼠标左键释放->记录最后光标的位置

    root.bind("",button_3) #鼠标右键点击->截屏并保存图片

    root.mainloop()

    监听鼠标光标位置:

    def move(event):

    global x, y ,xstart,ystart

    new_x = (event.x-x)+canvas.winfo_x()

    new_y = (event.y-y)+canvas.winfo_y()

    s = "300x200+" + str(new_x)+"+" + str(new_y)

    canvas.place(x = new_x - xstart,y = new_y -ystart)

    print("s = ", s)

    print(root.winfo_x(), root.winfo_y())

    print(event.x, event.y)

    创建子窗口:

    def button_1(event):

    global x, y ,xstart,ystart

    global rec

    x, y = event.x, event.y

    xstart,ystart = event.x, event.y

    print("event.x, event.y = ", event.x, event.y)

    xstart,ystart = event.x, event.y

    cv.configure(height=1)

    cv.configure(width=1)

    cv.config(highlightthickness=0) # 无边框

    cv.place(x=event.x, y=event.y)

    rec = cv.create_rectangle(0,0,0,0,outline='red',width=8,dash=(4, 4))

    改变子窗口大小:

    def b1_Motion(event):

    global x, y,xstart,ystart

    x, y = event.x, event.y

    print("event.x, event.y = ", event.x, event.y)

    cv.configure(height = event.y - ystart)

    cv.configure(width = event.x - xstart)

    cv.coords(rec,0,0,event.x-xstart,event.y-ystart)

    松开鼠标,记录最后的光标位置:

    def buttonRelease_1(event):

    global xend,yend

    xend, yend = event.x, event.y

    截屏并保存图片:

    def button_3(event):

    global xstart,ystart,xend,yend

    cv.delete(rec)

    cv.place_forget()

    img = pyautogui.screenshot(region=[xstart,ystart,xend-xstart,yend-ystart]) # x,y,w,h

    img.save('screenshot.png')

    sys_out(None)

    退出程序:

    def sys_out(even):

    root.destroy()

    二、后续改进

    这个还有很多可以改进的地方。

    截图的时候会有dos窗口遮挡:这个解决办法由很多,类似后台启动,或者将.py编译为可执行文件等等;

    使用不方便,为了截图还的运行代码:废话!!!当然很不方便呀,不然怎么说是个无聊的小发明呢。但是!!!它也不是一无事处,可以考虑把它放到后台运行。同样可以利用快捷键来唤醒它并完成截图。

    功能单一:这只是一个很简单的demo,既然可以截屏了,那么我们离录屏还远吗?(正如本文开头的动图,右上角晃晃几个大字“ApowerREC”,不给钱休想去掉,哼~)那么,我们为何不自己写一个呢?

    写在最后

    最后,感谢各位大大的耐心阅读~

    到此这篇关于如何使用python写截屏小工具的文章就介绍到这了,更多相关python截屏小工具内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

    本文标题: 如何使用python写截屏小工具

    本文地址: http://www.cppcns.com/jiaoben/python/351116.html

    展开全文
  • 以我多年使用百度的经验,这种工具,网上估计一搜一大把。果然还是没有让我失望,资源多到我不想一一浏览。直接点开了第一篇内容,下载,安装,一气呵成。但是真正使用的时候,套路来了。2分钟?还要加水印?...

    7c169512f30ab4392d1b020b6a85e417.png

    如果你不想花“大价钱”购买一套录屏软件,又不想忍受低画质加水印的免费版,那么这篇文章可以帮助你解决这一难题。


    故事发生在几天前,一个阳光明媚的午后。本想着录一条视频,结果发现电脑里并没有一个合适的录屏软件。以我多年使用百度的经验,这种小工具,网上估计一搜一大把

    343249cb79329e07f902d6ddfc9af5b0.png

    果然还是没有让我失望,资源多到我不想一一浏览。直接点开了第一篇内容,下载,安装,一气呵成。

    ed2b7cd733ead85edead40e797ff74ce.png

    但是真正使用的时候,套路来了。

    586ca919c78deecd72402b518d965f48.png

    2分钟?还要加水印?想要用的顺心就得买个VIP?以我个人对此类软件的认知,如果在5块钱以内,我就勉为其难支持一下正版。但是现在这样,心有余而力不足。

    e580397a11582bce9c4ef46818bc06ba.png

    你没有看错,198。是不是疯了?作为一个不服输的前少先队员,我决定换一个软件试试看。之后又下载了3款,几乎都是一样的售价,一样的套路,面对电脑上鲜艳的198,我泡上一杯枸杞茶,陷入了沉思。

    de67744cddfa5ccb548712f83d2cd673.png

    不禁感叹,有钱真好。但是为了完成如此一件录屏的小事情,除了花钱就别无他法了么?

    那必然不是的!今天我们就要用Python帮你省下来198,当然如果你愿意,可以把这个198...自己留下,反手给我一个赞就好啦~

    5048bf1e5d4c811d1988ec837780d531.png

    准备工作

    你需要在电脑上安装了Python3的环境,以及有一个用起来顺手的IDE。

    码起来!

    在Python中,有一个神奇的第三方库,Pillow。他经常用于图像处理相关的领域。比如模糊,滤镜,插入文本等等相关的工作,均可以用Pillow库进行操作。

    python3之成像库pillow - Py.qi - 博客园www.cnblogs.com

    对于视频而言,其实就是一幅幅图片所组成的动态效果。比如我们常说的30帧,也就是一秒钟有30幅图片连成的“动图”。

    还有一个主角就是opencv,这个第三方库可以算得上是Python的一大支柱。无论是人工智能卷积神经网络相关,或者是日常图片处理,opencv都异常强大。可以说90%的人只是学到了他的皮毛,为啥这么说?可以打开opencv的官网,看着林林总总几百页的教程,估计会被劝退的。

    opencv官网docs.opencv.org

    本次我们就将基于这两个“神仙”第三方库,完成录屏工具的开发。

    8a052bb75985bb4901e0950e76476207.png
    基本思路如下
    • 每次由pillow获取一帧显示器画面
    • opencv将获取到的画面写入至结果中
    • opencv显示该画面(与获取同步进行,所以感觉不出异样)
    • 录制完成,保存结果

    看起来好复杂啊,是不是一定很难?先看一下结果。

    结果展示
    8c5fb22adae72b9246f30f02d0a3be92.png
    Python制作录屏软件https://www.zhihu.com/video/1143927007808208896
    import numpy as np
    import cv2
    from PIL import ImageGrab
    import pyautogui as pyag
    
    fourcc=cv2.VideoWriter_fourcc('X', 'V', 'I', 'D')
    out=cv2.VideoWriter('output.avi',fourcc,30,pyag.size()) # 参数分别为 输出文件名,解码方式,帧数,录像范围--当前为全屏模式
    
    while(True):
        img=ImageGrab.grab()
        img_np=np.array(img)
        frame=cv2.cvtColor(img_np,cv2.COLOR_BGR2RGB) # ImageGrab获取的颜色为BGR排序,需转换为RGB
        out.write(frame)
        cv2.imshow('screen',frame)
        if cv2.waitKey(1)==27: # 点击ESC退出
            break
    out.release()
    cv2.destroyAllWindows()

    至于XVID是什么,如果不是专业的音视频制作人员,可以不用非常关注,想进一步了解可以浏览如下链接。

    DivX/XviD_百度百科baike.baidu.com
    ea607e0c5b1411e50bb95033fafffcb5.png

    可是接下来问题又出现了,如果此时我只是想区域录制呢?只是需要某一指定范围,如何能通过Python来完成呢?

    这里我们不做太过复杂的功能了(因为我懒。。),动态选取增加listener之类并不适合绝大多新手掌握。我们用一个更为讨巧的方法,根据鼠标位置获取其在屏幕上的(x,y)坐标。(请先将鼠标放在起点与终点,并执行下方代码,操作方法如下视频)

    import  win32gui
    
    
    flags, hcursor, (x,y) = win32gui.GetCursorInfo()
    print("x:",x," y:",y)
    7c2bb8ebf7686399e5950f36a8bc1040.png
    Python获取当前鼠标的位置https://www.zhihu.com/video/1143927348087803904

    最终我们放上区域选择后的效果。

    6e6431fa555620feccacde490b2d61a0.png
    Python录屏软件区域录制https://www.zhihu.com/video/1143927568003678208

    想用Python做点有趣的事情?记得关注啦~靴靴

    c5214a8f069fcc0549c6ddf547db915a.png
    展开全文
  • 考虑一下利用Python制作一个整蛊、木马软件,我提供思路。(清楚到没学过编程的人也理解)1、首先一个黑客一个整蛊或者木马软件,一定不会让你能够关闭它。2、里面经常会附带欺骗的方法。3、最终实现某种目的。前...
  • 思考过程其实本人职业并不是开发人员,任职是测试,但是喜欢平时用python写点东西,所以开发大大们莫见笑。不废话,说说我才开始的思考过程。1.首先代码需要涉及前端和后台两个部分,前端我查了PyQt和Tkinter,...
  • Pygame 是一组用来开发游戏软件Python 程序模块,基于 SDL 库的基础上开发。我们今天将利用它来制作一款大家基本都玩过的游戏——贪吃蛇。 一、需要导入的包importpygameimporttimeimportrandompygame:获取...
  • 考虑一下利用Python制作一个整蛊、木马软件,我提供思路。(清楚到没学过编程的人也理解)1、首先一个黑客一个整蛊或者木马软件,一定不会让你能够关闭它。2、里面经常会附带欺骗的方法。3、最终实现某种目的。...
  • 考虑一下利用Python制作一个整蛊、木马软件,我提供思路。(清楚到没学过编程的人也理解)1、首先一个黑客一个整蛊或者木马软件,一定不会让你能够关闭它。2、里面经常会附带欺骗的方法。3、最终实现某种目的。前...
  • 那就是当软件被打包成单个文件的时候,需要解压大量的文件。导致软件的启动时间非常的长。这对一个程序来说。启动时间长是非常难堪的。于是我便想办法。如何才能把标准库中的不必要文件去掉呢。刚开始我是一个库...
  • 还在为如何去绘图烦恼的伙伴赶紧看过来,这里手把手教你解决问题~~~~当然还是讲究一下规则:先点赞再看,尊重一下作者。年轻人还是要讲点武德的。。。废话不多说,进入正题→→→1.创建空白画布定义一个函数传入...
  • 考虑一下利用Python制作一个整蛊、木马软件,我提供思路。(清楚到没学过编程的人也理解)1、首先一个黑客一个整蛊或者木马软件,一定不会让你能够关闭它。2、里面经常会附带欺骗的方法。3、最终实现某种目的。...
  • 妙…啊~~~今天要的东西,就是用python写一个截屏工具。想必大家平时截屏的时候很多都是用的微信的ALT+A或者是WINDOWS自带的截屏软件。作为技术宅的我,怎么总是用别人的东西呢?看我的,上图:效...

空空如也

空空如也

1 2 3 4 5 ... 7
收藏数 129
精华内容 51
关键字:

如何用python做小软件

python 订阅