py学习之FTP
1.FTP之参数解析与命令分发
a) 层级目录如下

b) 配置文件如下
#!/usr/bin/env python
# -*- coding:utf8 -*- import socket
sk=socket.socket()
sk.connect(('127.0.0.1',8080))#括号里是元组
ftp_client.py
#!/usr/bin/env python
# -*- coding:utf8 -*-
import os,sys
PATH=os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
sys.path.append(PATH)
# print(os.path.dirname(__file__)) #打印文件所在当前目录
# print(os.path.abspath(__file__))#定位到文件绝对路径
from core import main if __name__ == '__main__':
main.ArgvHandler()
ftp_server.py
#!/usr/bin/env python
# -*- coding:utf8 -*- IP='127.0.0.1' PORT=8080
settings.py
#!/usr/bin/env python
# -*- coding:utf8 -*- import optparse #解析命令行的命令
import socketserver from conf import settings from core import server #必须这样导入,因为path路径找不到 class ArgvHandler():
def __init__(self): #初始方法
self.op=optparse.OptionParser()
# self.op.add_option("-s","--s",dest="server") # -s 自己起的,--s 固定参数
# self.op.add_option("-P","--port",dest="port") options,args=self.op.parse_args() #参数解析,返回两个结果,option是绑定参数,
# args返回没绑定的参数列表
self.verify_args(options,args) def verify_args(self,options,args):
cmd = args[0]
if hasattr(self,cmd): #反射
func=getattr(self,cmd) #拿到对应
func() def start(self):
print('The server is working on port 8080......')
s=socketserver.ThreadingTCPServer((settings.IP,settings.PORT),server.Serverhandler)
s.serve_forever() def help(self):
pass print(type(options))
print(options.server)
print(options.port)
print(args[1])
main.py
#!/usr/bin/env python
# -*- coding:utf8 -*-
import socketserver class Serverhandler(socketserver.BaseRequestHandler): def handle(self):
print('ok------yu')
server.py
py学习之FTP的更多相关文章
- 阅读{django-restframework}源码[generics.py]学习笔记
首先django-restframework是基于django的一个框架. mixins.py中开头是这样写的: Basic building blocks for generic class b ...
- web.py学习心得
1.注意判断数字时,如果是get传递的参数,一定要用int转换.不然出错. 2.$var 定义时,冒号后的内容不是python内容,需加上$符号.如$var naviId:$naviId. 3.各个模 ...
- web.py 学习(二)Worker
Rocket Server 启动一个线程监听客户端的连接,收到连接将连接放置到队列中.线程池中的Worker会以这个连接进行初始化.Rocket中Worker的基类是: class Worker(Th ...
- web.py 学习(-)Rocket web框架
Rocket是一个轻量级,多线程,符合WSGI规范的web框架. Rocket使用一个线程监听连接,接收到连接之后放到Queue中,有worker线程进行处理. Rocket含有以下属性: metho ...
- linux 学习笔记 ftp
server with sites set up for download files sometimes provide an anonymous ftp account 数据传输 ftp 192. ...
- linux学习笔记 ftp命令
ftp server with sites et up for downloaing files sometimes provides an anonymous ftp account 数据传输 ft ...
- web.py学习遇到的问题
刚配置好了web.py运行所需要的环境,试着运行一个入门小实例,结果遇到了异常提示.不知道是什么原因导致的(是环境没配置好?还是……),暂时做个标记,记录一下. 运行的代码 import web ur ...
- py学习日记
From:<python编程从入门到实践> 持续更新中... 都在代码里了 第一到七章: """ Author:CruelKing Time:7/27/201 ...
- py学习笔记1.13、1.14
1.name.title() 首字母大写 name.upper() 全部大写 name.lower() 全部小写 2.+ 合并字符串 3.单引号.双引号都可以表示字符串 4.# 注释 5.索引制定为- ...
随机推荐
- 浅谈一致性Hash原理及应用
在讲一致性Hash之前我们先来讨论一个问题. 问题:现在有亿级用户,每日产生千万级订单,如何将订单进行分片分表? 小A:我们可以按照手机号的尾数进行分片,同一个尾数的手机号写入同一片/同一表中. 大佬 ...
- java的堆和栈
初始入门嗯:https://www.cnblogs.com/SaraMoring/p/5687466.html 堆空间:new出来的数组和对象,对象和数组没有引用指向它的时候,等待下一次垃圾回收 栈空 ...
- TS/ES/PS
数字信号实际传送的是数据流,一般数据流包括以下三种: ES流(Elementary Stream): 也叫基本码流,包含视频.音频或数据的连续码流. PES流(Packet Elementary St ...
- C语言课程设计——电影院订票系统
1. 课题简介 大家都爱看电影,现请参考一个熟悉电影票预订系统,实现C语言版的订票系统.了解订票如何实现的.系统主要有2类用户:管理员用户和顾客用户. 管理员用户登录系统后,实现电影放映厅信息管理和电 ...
- Android XML数据解析
XML:可扩展标记语言.一般用于数据存储,SharedPreference就是使用xml文件保存信息的,SQLite底层也是xml文件,在网络方面通常作为信息的载体,把数据包装成xml来传递. XML ...
- 视频支持拖动进度条播放的实现(基于nginx)
http协议下的flv/mp4流式播放支持的三个要点: 1 服务器端要支持flv/mp4流式播放,现在nginx或者lighttpd都是支持这样的应用的,还支持mp4的流式播放(默认编译版本一般都是打 ...
- java之mapstruct的应用
一.MapStruct是一个代码生成器,简化了不同的Java Bean之间映射的处理,所以映射指的就是从一个实体变化成一个实体.例如我们在实际开发中,DAO层的实体和一些数据传输对象(DTO),大部分 ...
- 客户端调用wcf服务,如何提高调用性能
IO调用服务 1.使用using(每次自动释放) ; i < ; i++) { var watch = new Stopwatch(); watch.Start(); using (var cl ...
- 使用pandas时遇到ValueError: numpy.dtype has the wrong size, try recompiling
[问题]使用pandas时遇到ValueError: numpy.dtype has the wrong size, try recompiling [原因] 这是因为 Python 包的版本问题,例 ...
- 读书笔记--Linux Shell脚本攻略
总结的来说,这本书很实践性和实用性强,都是给的具体的例子,直接可以在终端操作实践,比单纯只看不动手务实多了,另外就是,这本书涵盖的内容也比较广,从文本操作到服务器管理到远程ssh等等,都给出来作者挑选 ...