python之路day8

1.动态导入模块
lib  = __import__("lib.aa")c = lib.aa.C()print(c.name)print(lib.aa.C)

#下面为常用的方法import importliblib = importlib.import_module(‘lib.aa‘)print(lib.C())

2.断言assiset 后面跟条件,如果成立就会执行下面的程序,如果不成立就会报异常 例1:

assert  6 == 6print(‘6等于6‘)上诉情况没问题 所以会打印下面的内容

例2:
assert type(2) is strprint(‘g is str‘)上面的例子断言不成立所以会报错

Traceback (most recent call last):
File "/Users/luobiao/PycharmProjects/s14/day7/lib/aa.py", line 24, in <module>
assert type(2) is str
AssertionError

3.写一个简单的socketssh客户端1)服务器端代码
import socket,os,time

#申明socketserver = socket.socket()#进行ip绑定server.bind((‘localhost‘,6767))#进行监听server.listen()#进行循环等待,并接收连接和连接地址

while True:    conn,addr = server.accept()    print(conn,addr)    while True:        #进行数据接收        data = conn.recv(1024)        #进行数据打印,并进行解码        print(data.decode())        #调用os的popen模块,进行命令调用        d = os.popen(data.decode()).read()        length = str(len(d.encode()))        if len(d) == 0:            d = ‘命令错误,请重新输入.‘        #回传消息        conn.send(length.encode(encoding=‘utf-8‘))        #socket粘包 两次发送的信息会粘到一起,导致接收出错        #解决方案1:使用sleep睡眠0.5秒,让缓冲区超时 让两次数据不在同一个缓冲区        #time.sleep(0.5)        #解决方案2:        client_ack = conn.recv(1024)#接收一个数据,让客户端返回信息        print(client_ack.decode())        conn.send(d.encode(encoding=‘utf-8‘))

server.close()

2)客服端代码
import  socket

#申明socketclient = socket.socket()#指定连接地址和端口client.connect((‘localhost‘,6060))

#循环发送给信息while True:    #让用户输入信息,模仿ssh输入    message = input(‘>>: ‘)    #发送消息,将str类型的数据转换为bytes,使用encode进行转换    client.send(message.encode(encoding=‘utf-8‘))    #接收消息,并指定接收的最大数据量,单位为字节    length = client.recv(1024).decode()    client.send(‘收到大小‘.encode(encoding=‘utf-8‘))    print(length)    #打印消息并进行转码    #print(length.decode())    recevied_size = 0    while int(length)> recevied_size:        data = client.recv(1024)        recevied_size +=len(data.decode())        print(data.decode())        print(recevied_size)    else:        print(‘接收完毕‘)#关闭链接client.close()



原文地址:https://www.cnblogs.com/tongyakoucun/p/8977961.html

时间: 2024-12-26 06:43:36

python之路day8的相关文章

python之路-DAY8

1. 鸡汤  关于素质 2.推荐书籍:百年孤独 3.类的属性,方法字段复习 4.python自带方法 isinstance 及 issubclass方法 #!/usr/bin/env python#-*- coding:utf-8 -*-# powered by xiaobing class A(object):pass class B(A):pass obj = B()print isinstance(obj,B) #判断obj是不是B的对象print isinstance(obj,A) #判

Python之路,Day8 - Python基础 面向对象高级进阶与socket基础

类的成员 类的成员可以分为三大类:字段.方法和属性 注:所有成员中,只有普通字段的内容保存对象中,即:根据此类创建了多少对象,在内存中就有多少个普通字段.而其他的成员,则都是保存在类中,即:无论对象的多少,在内存中只创建一份. 一.字段 字段包括:普通字段和静态字段,他们在定义和使用中有所区别,而最本质的区别是内存中保存的位置不同, 普通字段属于对象 静态字段属于类 class Province: # 静态字段 country = '中国'def __init__(self, name): #

PYTHON学习笔记-DAY-8

Python之路,Day8 - Socket网络编程 本节内容 Socket介绍 Socket参数介绍 基本Socket实例 Socket实现多连接处理 通过Socket实现简单SSH 通过Socket实现文件传送 作业:开发一个支持多用户在线的FTP程序 1. Socket介绍 概念 A network socket is an endpoint of a connection across a computer network. Today, most communication betwe

Python之路【第十七篇】:Django【进阶篇 】

Python之路[第十七篇]:Django[进阶篇 ] Model 到目前为止,当我们的程序涉及到数据库相关操作时,我们一般都会这么搞: 创建数据库,设计表结构和字段 使用 MySQLdb 来连接数据库,并编写数据访问层代码 业务逻辑层去调用数据访问层执行数据库操作 import MySQLdb def GetList(sql): db = MySQLdb.connect(user='root', db='wupeiqidb', passwd='1234', host='localhost')

Python之路【第九篇】:Python操作 RabbitMQ、Redis、Memcache、SQLAlchemy

Python之路[第九篇]:Python操作 RabbitMQ.Redis.Memcache.SQLAlchemy Memcached Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载.它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态.数据库驱动网站的速度.Memcached基于一个存储键/值对的hashmap.其守护进程(daemon )是用C写的,但是客户端可以用任何语言来编写,并通过memcached协议与守护进程通信. Memc

七日Python之路--第十二天(Django Web 开发指南)

<Django Web 开发指南>.貌似使用Django1.0版本,基本内容差不多,细读无妨.地址:http://www.jb51.net/books/76079.html (一)第一部分 入门 (1)内置数字工厂函数 int(12.34)会创建一个新的值为12的整数对象,而float(12)则会返回12.0. (2)其他序列操作符 连接(+),复制(*),以及检查是否是成员(in, not in) '**'.join('**')   或  '***%s***%d' % (str, int)

七日Python之路--第九天

众所周知,代码这东西不是看出来的.程序这东西只哟一个标准. 下面找点开源的东西看看,学习一下大婶们的犀利编码...... 推荐一下: 虽然有点老了:http://www.iteye.com/topic/405150,还有就是GitHub上面搜索一下Django就能出来很多,当然还有OSChina.只是有个问题,就是Django版本不同,具体的内容可能会有些不同,但大概还是相同的.领略即可,然后书写自己的代码. 首要的还是官方文档. 看着还是有些难度的.偶然发现一个不错的Blog:http://w

Python之路【第三篇】:Python基础(二)

Python之路[第三篇]:Python基础(二) 内置函数 一 详细见python文档,猛击这里 文件操作 操作文件时,一般需要经历如下步骤: 打开文件 操作文件 一.打开文件 1 文件句柄 = file('文件路径', '模式') 注:python中打开文件有两种方式,即:open(...) 和  file(...) ,本质上前者在内部会调用后者来进行文件操作,推荐使用 open. 打开文件时,需要指定文件路径和以何等方式打开文件,打开后,即可获取该文件句柄,日后通过此文件句柄对该文件操作.

Python之路【第二篇】:Python基础(一)

Python之路[第二篇]:Python基础(一) 入门知识拾遗 一.作用域 对于变量的作用域,执行声明并在内存中存在,该变量就可以在下面的代码中使用. 1 2 3 if 1==1:     name = 'wupeiqi' print  name 下面的结论对吗? 外层变量,可以被内层变量使用 内层变量,无法被外层变量使用 二.三元运算 1 result = 值1 if 条件 else 值2 如果条件为真:result = 值1如果条件为假:result = 值2 三.进制 二进制,01 八进