socket练习:FTP
FTP 练习收获:
1,类型转换
2,进度条实现:
3,print 输出不换行的方法:
print输出 不换行的方法:
方法一:
- import sys
- sys.stdout.write("go ")
- sys.stdout.write("home")
- sys.stdout.flush()
方法二:函数方式调用print函数
- from __future__ import print_function
- print('go ', end='')
- print('home', end='')
方法三:
- print 'go',
- print 'home'
4,pickle序列化存储注意事项:
5,此步非常有用
6 ,数据传输的时候 遇到的问题 sendall
7 ,MD5 加密 :即摘要算法又称为哈希算法,散列算法。它通过一个函数,把任意长度的数据转换为一个长度固顶的数据串(通常用16进制的字符串表示)用于加密相关的操作。
不错的博客地址:http://www.cnblogs.com/wang-yc/p/5616663.html
8,socket服务连接报错:“由于目标机器积极拒绝,无法连接.(10061),”
可能的原因是:1.服务器地址不正确 或者 端口号不对。
2.服务端服务没有正常启动。服务器没启动socket
9,列表与字符串相互转换 socket网络传输的时候以bytes类型 转bytes的前提是数据为str
http://jingyan.baidu.com/article/8cdccae997854e315413cdff.html
实例:
服务端 :
客户端:
10,常用模块类型
11,从其他路径导入模块:
或者:
12 计算文件夹 即目录的大小 单位是字节
牛人测试地址:http://www.cnblogs.com/herbert/archive/2013/01/07/2848892.html
http://alanland.iteye.com/blog/612459
13.文件传输的时候 sk.recv(1024) 是多大?
首先文件传输的时候,数据类型是bytes类型,即字节类型
这里(1024)表示一次最大接收1024个字节
1024字节就是1024byte,即1kb。
14 ,python 删除非空文件夹 或者目录
调用shutil模块
import shutil
shutil.rmtree('c:\\test')
print 'ok'
15 ,获取当前脚本的运行启动目录
http://www.cnblogs.com/nzbbody/archive/2013/11/12/3419473.html
16,获取当前文件的绝对路径
os.path.dirname(os.path.abspath('__file__'))
17. 获取当前路径path 的上级目录 注意:path是路径,不可以是绝对路径带文件名
os.path.dirname(path) 返回文件路径
18.计算文件夹大小
http://www.oschina.net/code/snippet_247498_49000
另一种方法:
http://blog.csdn.net/wiker_yong/article/details/13109383
- #!/usr/bin/python
- #-*- coding:gbk -*-
- import urllib2
- import urllib
- import os
- import shutil
- homedir = os.getcwd()
- from os.path import join, getsize
- '''''
- 获取当前文件夹,和文件夹大小
- 放在要统计的文件夹下
- '''
- FOLDER_LIST=[]
- def getdirsize(dir):
- size = 0L
- for root, dirs, files in os.walk(dir):
- size += sum([getsize(join(root, name)) for name in files])
- return size
- def getFileSize(size):
- if size/1024>1:
- if size/(1024*1024)>1:
- return '%0.2fMB' %float(size/(1024*1024))
- else:
- return '%0.2fKB' %float(size/1024)
- else:
- return '%0.2fKB' %float(size/1024)
- def sort(A,num):
- for i in range(len(A)):
- (A[i][0],A[i][num])=(A[i][num],A[i][0])
- A.sort(reverse=True)
- for i in range(len(A)):
- (A[i][0],A[i][num])=(A[i][num],A[i][0])
- for i in os.listdir('.'):
- if os.path.isdir(i):
- fileSize = getdirsize(unicode(homedir+'\\'+i,'gbk'))
- FOLDER_LIST.append([homedir+'\\'+i,fileSize])
- print homedir+'\\'+i+'\t文件大小:%s' %(getFileSize(float(fileSize)))
- sort(FOLDER_LIST,1)
- print '*********************排序后*********************'
- for arr in FOLDER_LIST:
- print arr[0]+'\t文件大小:%s' %(getFileSize(float(arr[1])))
- print '---------------------------------------------------------'
- os.system('pause')
18,进度条
牛人 https://github.com/tqdm/tqdm
20,os.mkdir 和 os.makedirs 区别
1.mkdir( path [,mode] )
作用:创建一个目录,可以是相对或者绝对路径,mode的默认模式是0777。
如果目录有多级,则创建最后一级。如果最后一级目录的上级目录有不存在的,则会抛出一个OSError。 2.makedirs( path [,mode] )
作用: 创建递归的目录树,可以是相对或者绝对路径,mode的默认模式也是0777。
如果子目录创建失败或者已经存在,会抛出一个OSError的异常,Windows上Error 183即为目录已经存在的异常错误。如果path只有一级,与mkdir一样。
来源: http://www.2cto.com/kf/201207/144150.html Github项目地址:待补充
socket练习:FTP的更多相关文章
- C#通过socket判断FTP服务器是否通畅并判断用户名密码是否正确
private static ManualResetEvent timeoutObject; private static Socket socket = null; private static b ...
- TCP/UDP,SOCKET,HTTP,FTP 简析
(一)TCP/UDP,SOCKET,HTTP,FTP简析 TCP/IP是个协议组,可分为三个层次:网络层.传输层和应用层: 网络层:IP协议.ICMP协议.ARP协议.RARP协议和BOOTP协议 传 ...
- socket实现ftp上传下载
socket实现ftp文件的上传和下载 server端代码: import socket import json import struct import os soc = socket.socket ...
- day34 异常处理、断言、socket之ftp协议
Python之路,Day20 = 异常处理.断言.socket之ftp协议 参考博客:http://www.cnblogs.com/metianzing/articles/7148191.html 异 ...
- [原创]python之socket-ftp
今天来讲讲ftp文件下载,感觉挺有趣的,知道吧,就那种看到新文件生成,而自己写的代码也不多,那种成就感! 一.需求: 客户端发送指令给服务端,服务端根据指令找到相应文件,发送给客户端 分析: PS:e ...
- 使用socket实现FTP程序
#-*- coding:utf-8 -*- import socketserver from module import * class server: def __init__(self,reque ...
- socket实现FTP上传下载功能
'''服务器端''' 1 _author__ = "Dbass" import socketserver import json,os class MyTCPHandler(soc ...
- Python:socket实现ftp程序
刚开始学习socket编程,还不是特熟练,码了好长时间,中间遇到许多问题,记录一下用socketserver写ftp server端: #!/usr/bin/env python import soc ...
- 理解TCP/IP,SOCKET,HTTP,FTP,RMI,RPC,webservic
TCP/IP:网络宽带,传输数据的基础协议,所有得数据要在网络上传输都是基于TCP/IP协议(或UDP),才能送达到指定的目的地(IP,服务器硬件地址). SOCKET:SOCKET只是面对编程人员的 ...
- Socket 多线程FTP软件开发
Socket具体还可见360云中文档记载 Socket是一个非常古老的协议了 1970年 Socket.AF_Unix======AF意思是 addressFamily 地址簇 Import os ...
随机推荐
- 已经安装了客户端,但是cmd输入sqlcmd报错:Sqlcmd:Error:Connection failure.SQL Native Client is not installed correctly
以前安装了sqlserver2008,没有卸载掉,后面又安装了sqlserver2014,所以系统环境变量中既有2008的环境变量的配置,又有2014的环境变量的配置,所以在终端输入sqlcmd时报错 ...
- HTTP文件上传服务器-支持超大文件HTTP断点续传的实现办法
最近由于笔者所在的研发集团产品需要,需要支持高性能的大文件http上传,并且要求支持http断点续传.笔者在以前的博客如何实现支持大文件的高性能HTTP文件上传服务器已经介绍了实现大文件上传的一些基本 ...
- 视图,sql注入问题,事物,存储过程
视图:本质是一张虚拟的表数据来自select语句用途是保障原表安全 功能1:隐藏部分数据,开放指定数据功能2:因为视图可以将查询结果保存的特性,我们可以用视图来达到减少书写sql语句的功能 例如:se ...
- BUG 图片元素img下 高度超出 出现多余空白
BUG 图片元素img下 高度超出 出现多余空白 1.将图片转换为块级对象 即,设置img为“display:block;”. 2.设置图片的垂直对齐方式 即设置图片的vertical-align ...
- Java理论学时第二节。课后作业。
枚举不属于原始数据类型,它的每个具体值都引用一个特定的对象,相同的值则引用同一个对象. 可以使用“==”和equals()方法直接比对枚举变量的值,换句话说,对于枚举类型的变量,“==”和equals ...
- (动态规划)Worm -- hdu -- 2151
http://acm.hdu.edu.cn/showproblem.php?pid=2151 Worm Time Limit: 1000/1000 MS (Java/Others) Memory ...
- excel函数累加求和与累计百分比应用
申明:为了方便记忆,该笔记内容纯属拷贝,如与原创雷同,请加我为火山小视频好友:345270311,必将献上好段子已表感谢~ 正传 以下表为例,求公里数的累加求和以及累计百分比. 在D2单元格输入=su ...
- 使用freemarker导出word
最近需要将jsp部分页面导出为word文件,环境是Spring+SpringMVC+Hibernate. 我使用的是FreeMarker模板引擎来完成.这是FreeMarker的中文参考手册,感兴趣的 ...
- java基础-day11
第11天 综合练习 今日内容介绍 u 综合练习 第1章 综合练习 1.1 综合练习一 A:键盘录入3个学生信息(学号,姓名,年龄,居住地)存入集合,要求学生信息的学号不能重复 B:遍历集 ...
- PAT甲级 1130. Infix Expression (25)
1130. Infix Expression (25) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yue Give ...