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.索引制定为- ...
随机推荐
- Windows与.NET Framework、数据库版本对应关系
================== windows XP/server 2003 (.NET Framework与 SQL Server\Oracle) 支持.NET版本:.NET Framewor ...
- Jenkins搭建windows service自动编译发布环境
类库项目(Task)部署 前面搭建了Web站点的环境,类库项目发布不同于站点项目,它只需要将MSBuild编译出来的dll复制到目标服务器上即可,而不需要通过Web Deploy,下面来说一下如何发布 ...
- 【转】linux sed命令详解
原文网址:http://www.iteye.com/topic/587673 1. Sed简介sed 是一种在线编辑器,它一次处理一行内容.处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”( ...
- OpenSSL编写SSL,TLS程序***
一.简介 SSL(Secure Socket Layer)是netscape公司提出的主要用于web的安全通信标准,分为2.0版和3.0版.TLS(Transport Layer Security)是 ...
- intellij系列ide配置
显示行号 搜索line number 在Editor,General,Appearance里面,勾选show line numbers 修改自体 sudo apt-get install fonts- ...
- 马士兵Spring-hibernate整合
spring整合hibernate: 1.sessionFactory只需要一个就可以了,单例,适合spring管理: 2.HIbernate中的SessionFactory是接口:spring中实现 ...
- 接口测试“八重天”---HttpClient
HTTP协议在互联网无处不在,在前面的章节中记录了‘接口本质即协议’,因此,接口测试首先了解的便是协议,其发送数据包和接收数据包的过程,其次便是如何在测试中去发送去解析,不论是通过代码还是工具也好,抽 ...
- Thinkphp 查询条件 and 和 or同时使用即复合查询
thinkphp 3.2快捷查询OR查询&分割表示AND查询讲解 快捷查询方式是一种多字段查询的简化写法,可以进一步简化查询条件的写法,在多个字段之间用|分割表 ...
- p3新式类__new__使用和实例化
嗯,new方法返回的是一个全新的对象是真正在内存中分配的内存地址 示例1·class Foo(object): # __metaclass__ = MyType def __init__(self, ...
- django-渲染页面+locals
from django.shortcuts import render, redirect from django.views import View from django.http import ...