python3带tkinter窗口的ftp服务器,并使用pyinstaller打包成exe
python带tkinter窗口的ftp服务器,使用python3编写,打包使用pyinstaller,命令 pyinstaller -F .\ftpserver.py
代码也可在我的github上下载
话不多说 直接贴代码:
from tkinter import *
from pyftpdlib.authorizers import DummyAuthorizer
from pyftpdlib.handlers import FTPHandler
from pyftpdlib.servers import FTPServer
import _thread
import sys root = Tk()
root.title("ftpserver") def run():
_thread.start_new_thread ( ftpserver, ()) def exitftp():
sys.exit(0) def ftpserver(): #实例化虚拟用户,这是FTP验证首要条件
authorizer = DummyAuthorizer() #添加用户权限和路径,括号内的参数是(用户名, 密码, 用户目录, 权限)
authorizer.add_user(var1.get(), var2.get(), '.', perm='elradfmw') #添加匿名用户 只需要路径
authorizer.add_anonymous('.') #初始化ftp句柄
handler = FTPHandler
handler.authorizer = authorizer #监听ip 和 端口,因为linux里非root用户无法使用21端口,所以我使用了2121端口
server = FTPServer((var3.get(), var4.get()), handler) #开始服务
server.serve_forever() #下面这些是对最开始的时候创建的tk进行行列式填充 label为文本 entry为输入框
L1 = Label(root,text = 'UserName:').grid(column = 0,row = 0)
var1 = StringVar()
E1 = Entry(root,textvariable = var1, bd = 2).grid(column = 1,row = 0)
var1.set("admin")
user = var1.get() L2 = Label(root,text = 'Password:').grid(column = 0,row = 1)
var2 = StringVar()
E2 = Entry(root,textvariable = var2, bd = 2).grid(column = 1,row = 1)
var2.set("")
password = var2.get() L3 = Label(root,text = 'IP Address:').grid(column = 0,row = 2)
var3 = StringVar()
E3 = Entry(root,textvariable = var3, bd = 2).grid(column = 1,row = 2)
var3.set("0.0.0.0")
ipaddr = var3.get() L4 = Label(root,text = 'PortNumber:').grid(column = 0,row = 3)
var4 = StringVar()
E4 = Entry(root,textvariable = var4, bd = 2).grid(column = 1,row = 3)
var4.set("")
port = var4.get() Button1 = Button(root,text = "RunFtpserver",command=run).grid(column = 0,row = 4)
Button0 = Button(root,text = "Exit",command=exitftp).grid(column = 1,row = 4)
root.mainloop()
完成效果如下图所示:
python3带tkinter窗口的ftp服务器,并使用pyinstaller打包成exe的更多相关文章
- 用tkinter写出you-get下载器界面,并用pyinstaller打包成exe文件
本文为原创文章,转载请标明出处 一.you-get介绍 you-get是一个基于 python 3 的下载工具,使用 you-get 可以很轻松的下载到网络上的视频.图片及音乐.目前支持网易云音乐.A ...
- 【爬坑】python3+pyqt5+pyinstaller 打包成exe的各种问题
windows系统+python3+pyqt5+pyinstaller打包,经常会出现各种打包异常情况.如果代码没有特别异常,那么综合原因,大抵都是这四个元素之间的匹配问题,引起的.作者:一心狮链接: ...
- 将python3.1+pyqt4打包成exe
将python打包成exe的程序有很多,比如py2exe.PyInstaller等等,但是到目前为止,它们对python3.1支持的都不好,所以这里我要介绍一下cx_freeze 4.2.2,它还能支 ...
- python3.7 打包成exe程序(只需两行命令)
根据博客作者louniuous的python3.7 打包成exe的一种方法 pyinstaller一文改编简化 环境:pycharm2018.1+win7+python3.7 工具:pyinstall ...
- 将 Python3 文件打包成 exe 文件
我们用 Python 写好的代码,如何给别人在没有配置 Python 环境的情况下直接使用呢?尤其是面向 windows 众. 因为 Python 是一门解释性的语言,离开了 Python 解释器,P ...
- python3.x使用cxfreeze将.p打包成.exe
之前写了一个使用ffplay批量查看格式为h264的图片,每次抽帧后都要打开pycharm编译器来运行程序,然后才能正常查看图片,或者在其他没有安装python环境的电脑中运行,很不方便.为此,在网上 ...
- python3项目打包成exe可执行程序
使用pyinstaller将python文件打包成exe程序,打包步骤如下: 一.安装pyinstaller (1)win+R输入cmd,打开命令窗口 (2)安装pyinstaller,安装指令:pi ...
- 解决python3使用cx_Freeze打包成exe后不能运行
我使用的是python3.4,在使用cx_Freeze打包成exe后发现有些打包后程序能够运行,但是有些无法运行 这是控制台报错 经过多方查找发现原来是windows缺少一些python的扩展包 如下 ...
- 【Python】将python3.6软件的py文件打包成exe程序
下载pyinstaller pyinstaller 改变图标 pyinstaller -F --icon=my.ico xxx.py 采用命令行操作的办法 在cmd命令行中,输入代码: 首先,前往Py ...
随机推荐
- Python入门-装饰器初始
今天我们就围绕一个来展开,那就是:装饰器 一.装饰器 在说装饰器之前,我们先说一个软件设计的原则:开闭原则,又被称为开放封闭原则,你的代码对功能的扩展是开放的,你的程序对修改源代码是封闭的,这样的软件 ...
- Perl学习笔记(2)----正则表达式数字匹配的一个疏忽
<Perl语言入门>第15章习题第2题如下: 用 given-when 结构写一个程序,根据输入的数字,如果它能被3整除,就打印“Fizz”:如果它能被5整除,就打印“Bin”:如果它能被 ...
- 用navicat工具创建MySQL存储过程
使用Navicat for MySQL工具创建存储过程步骤: 1. 新建函数(选择函数标签 -> 点击新建函数): 2.输入函数的参数个数.参数名.参数类型等: 3.编写存储过程: 代码如下: ...
- 零零碎碎的java知识:static属性、普通属性、static代码块、普通代码块、构造函数
本文中结论仅经本机测试,不保证在别的环境下成立.如果有什么不成立的地方务必告诉我_(:_」∠)_ java的内存是动态分配的,其机制和c/c++相当不一样……emmm在此不表. static: ·st ...
- 解决因 RsFX devicer 而无法卸载 SQL Server 的问题
到卸载 SQL Server 2008 R2 安装程序支持文件时,遇到了问题:“警告 26003.无法卸载 Microsoft SQL Server 2008 R2 安装程序支持文件,因为安装了以下产 ...
- Python学习---重点模块之json
注意:JSON不能转换类,不能转换函数 重点方法示例 json.dumps():实现文件写入,字符串转换[写入文件当然是JSON字符串楼] 实际上,json.dumps()只是帮我们做了一个字符串的转 ...
- Spark Worker原理和源码剖析解密:Worker工作流程图、Worker启动Driver源码解密、Worker启动Executor源码解密等
本课主题 Spark Worker 原理 Worker 启动 Driver 源码鉴赏 Worker 启动 Executor 源码鉴赏 Worker 与 Master 的交互关系 Spark Worke ...
- February 19 2017 Week 8 Sunday
We accept the love we think we deserve. 我们接受自己认为配得上的爱. A few months ago, I tried to date with a girl ...
- Go语言(二) 继承和重载
继承 package main import "fmt" type Skills []string type person struct { name string age int ...
- oracle踩过的坑
#默认库配置 url: jdbc:oracle:thin:@ip:1521:smis(SID名) driver: oracle.jdbc.driver.OracleDriver username: x ...