python带tkinter窗口的ftp服务器,使用python3编写,打包使用pyinstaller,命令 pyinstaller -F .\ftpserver.py

代码也可在我的github上下载

话不多说 直接贴代码:

 1 from tkinter import *
 2 from pyftpdlib.authorizers import DummyAuthorizer
 3 from pyftpdlib.handlers import FTPHandler
 4 from pyftpdlib.servers import FTPServer
 5 import _thread
 6 import sys
 7
 8 root = Tk()
 9 root.title("ftpserver")
10
11 def run():
12     _thread.start_new_thread ( ftpserver, ())
13
14 def exitftp():
15     sys.exit(0)
16
17 def ftpserver():
18
19
20     #实例化虚拟用户,这是FTP验证首要条件
21     authorizer = DummyAuthorizer()
22
23     #添加用户权限和路径,括号内的参数是(用户名, 密码, 用户目录, 权限)
24     authorizer.add_user(var1.get(), var2.get(), '.', perm='elradfmw')
25
26     #添加匿名用户 只需要路径
27     authorizer.add_anonymous('.')
28
29     #初始化ftp句柄
30     handler = FTPHandler
31     handler.authorizer = authorizer
32
33     #监听ip 和 端口,因为linux里非root用户无法使用21端口,所以我使用了2121端口
34     server = FTPServer((var3.get(), var4.get()), handler)
35
36     #开始服务
37     server.serve_forever()
38
39 #下面这些是对最开始的时候创建的tk进行行列式填充 label为文本 entry为输入框
40 L1 = Label(root,text = 'UserName:').grid(column = 0,row = 0)
41 var1 = StringVar()
42 E1 = Entry(root,textvariable = var1, bd = 2).grid(column = 1,row = 0)
43 var1.set("admin")
44 user = var1.get()
45
46 L2 = Label(root,text = 'Password:').grid(column = 0,row = 1)
47 var2 = StringVar()
48 E2 = Entry(root,textvariable = var2, bd = 2).grid(column = 1,row = 1)
49 var2.set("123456")
50 password = var2.get()
51
52 L3 = Label(root,text = 'IP Address:').grid(column = 0,row = 2)
53 var3 = StringVar()
54 E3 = Entry(root,textvariable = var3, bd = 2).grid(column = 1,row = 2)
55 var3.set("0.0.0.0")
56 ipaddr = var3.get()
57
58 L4 = Label(root,text = 'PortNumber:').grid(column = 0,row = 3)
59 var4 = StringVar()
60 E4 = Entry(root,textvariable = var4, bd = 2).grid(column = 1,row = 3)
61 var4.set("2121")
62 port = var4.get()
63
64 Button1 = Button(root,text = "RunFtpserver",command=run).grid(column = 0,row = 4)
65 Button0 = Button(root,text = "Exit",command=exitftp).grid(column = 1,row = 4)
66 root.mainloop()

完成效果如下图所示:

转载于:https://www.cnblogs.com/ryan255/p/5426846.html

python3带tkinter窗口的ftp服务器,并使用pyinstaller打包成exe相关推荐

  1. 用tkinter写出you-get下载器界面,并用pyinstaller打包成exe文件

    写在前面:本文为笔者最早于 2019-05-11 23:15 以"@拼命三郎"的身份发表于博客园 本文为原创文章,转载请标明出处 一.you-get介绍 you-get是一个基于 ...

  2. python3打包exe_[求助]入坑学习python 需要装pyinstaller打包成exe

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 E:\Python>pyinstaller -F E:\Python\123.py 142 INFO: PyInstaller: 3.2.1 142 ...

  3. python3.7打包exe坑_[求助]入坑学习python 需要装pyinstaller打包成exe

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 E:\Python>pyinstaller -F E:\Python\123.py 142 INFO: PyInstaller: 3.2.1 142 ...

  4. python tkinter界面 多进程启动scrapy爬取百度贴吧的回复,显示爬取进度,并可以搜索回帖人,指定时间生成词云图,用pyinstaller打包成exe(七)

    爬取单个帖子one_tiezi_spider.py ''' 这个是爬取 单个帖子的爬虫 大概思路:          1.进入该帖子的第1页,获取帖子的初始信息(标题.发帖人.tid.总页数)等    ...

  5. python使用 tkinter + you-get 实现视频下载器以及 pyinstaller 打包时的问题

    文章目录 github地址 实现思路 pyinstaller 打包成 exe UI 左上角图标 运行效果 代码 github地址 https://github.com/jnxxhzz/you-get- ...

  6. 解决python3.7.2中pyinstall打包成exe文件工具的问题

     首先介绍一下可以打包Python代码的工具: py2exe: 这个是知名度最高的,但是好像不太适合新手,需要各种库,用起来比较繁琐,不推荐. pyinstaller : 可以只是生成单独的可执行程序 ...

  7. python tkinter库、添加gui界面_使用Python中tkinter库简单gui界面制作及打包成exe的操作方法(二)...

    使用Python中tkinter库简单gui界面制作及打包成exe的操作方法(二),创建一个,界面,布局,文件,路径 使用Python中tkinter库简单gui界面制作及打包成exe的操作方法(二) ...

  8. python自带编译器如何生成exe_别再问我怎么Python打包成exe了!

    也许我们不一定是专业的程序员,但是我们仍然可以通过代码提高我们的效率,尽量少加班,多陪陪媳妇.再不行,让代码替我们干着重复的工作,我们有节省出来的时间打游戏不好嘛,是吧,哈哈哈. 但是呢,我们开发的脚 ...

  9. python——生成带logo的二维码图片并且保存、控制打印机打印图片二维码、整合打印(获取输入框的值)、打包成exe文件

    1.生成带logo的二维码图片并且保存 前提条件:在D盘里有logo.png的图片,生成的二维码图片在D盘里的111.png import qrcode from PIL import Image# ...

  10. 将python3.1+pyqt4打包成exe

    将python打包成exe的程序有很多,比如py2exe.PyInstaller等等,但是到目前为止,它们对python3.1支持的都不好,所以这里我要介绍一下cx_freeze 4.2.2,它还能支 ...

最新文章

  1. 2022-2028年中国数码相机行业投资分析及前景预测报告
  2. 组合特征(二)tfidf(word+article)+lsa
  3. 中国各地高考难度地图:上大学最难的省份是哪里!?
  4. PXE新手经典思路引导
  5. switch( )的经典引用
  6. 【数据结构与算法】之深入解析“复原IP地址”的求解思路与算法示例
  7. easyui datagrid java_EasyUI DataGrid 显示不了数据????
  8. ORA-12505, TNS:listener does not currently know of SID given in connect descriptor
  9. Java SringBoot demo
  10. loj10036. 「一本通 2.1 练习 2」Seek the Name, Seek the Fame
  11. 布局的几种方式(静态布局、自适应布局、流式布局、响应式布局、弹性布局)...
  12. 关于官方Reachability Demo理解
  13. 在JavaScript中实现继承的几种方式
  14. java做界面_java怎么做出界面?实例讲解
  15. 如何在linux系统下的抓包文件保存在u盘里,在xp系统中打开,【Linux】Wireshark在Linux系统下的安装及使用...
  16. lhgdialog的弹出框操作
  17. 万字长文剖析架构设计全攻略(上)
  18. Linux实验整理——vi编辑器使用、文件显示和处理命令
  19. 用Python帮老哥选出好基金,稳赚一笔,老哥专门提着茅台登门拜访
  20. SpringBoot35-分布式系统开发-spring cloud1

热门文章

  1. shared memory realm does not exist解决办法
  2. 服务器虚拟机的关键特性,VMware Workstation的几大关键特性
  3. php 生成类,PHP静态文件生成类实例
  4. Collectors.averagingInt
  5. JSP的自定义标签(一)
  6. 【渝粤教育】国家开放大学2018年春季 3818-21T燃气工程施工 参考试题
  7. 【Python实例第8讲】模型复杂度影响
  8. 基于矩阵分解的隐因子模型
  9. 一个算例 介绍 libmesh 的类
  10. centos7.6(腾讯云)开放端口及配置腾讯云安全组