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+' 文件大小:%s' %(getFileSize(float(fileSize)))
- sort(FOLDER_LIST,1)
- print '*********************排序后*********************'
- for arr in FOLDER_LIST:
- print arr[0]+' 文件大小:%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项目地址:待补充
![bec33b46-3fd5-4049-9f7c-f1f508ea9d0c[4] bec33b46-3fd5-4049-9f7c-f1f508ea9d0c[4]](https://images2015.cnblogs.com/blog/575577/201703/575577-20170309145934844-1363581969.png)
![0bd29a82-5d55-4946-83a5-ecc69e94a438[3] 0bd29a82-5d55-4946-83a5-ecc69e94a438[3]](https://images2015.cnblogs.com/blog/575577/201703/575577-20170309145940328-168434629.png)
![86811f2e-ced8-4ba3-bb8d-a318959a545d[3] 86811f2e-ced8-4ba3-bb8d-a318959a545d[3]](https://images2015.cnblogs.com/blog/575577/201703/575577-20170309145943125-1026021151.png)
![36018fb0-ba6d-4a4f-831a-39ac843e46a3[3] 36018fb0-ba6d-4a4f-831a-39ac843e46a3[3]](https://images2015.cnblogs.com/blog/575577/201703/575577-20170309145947422-1035365542.png)
![38cd13cd-adc9-4786-b99c-3c09d5ab7b9f[3] 38cd13cd-adc9-4786-b99c-3c09d5ab7b9f[3]](https://images2015.cnblogs.com/blog/575577/201703/575577-20170309145949625-1295975294.png)
![a44e1385-20ca-4426-8402-9fc94a077084[3] a44e1385-20ca-4426-8402-9fc94a077084[3]](https://images2015.cnblogs.com/blog/575577/201703/575577-20170309145951109-49675679.png)
![c7130159-3366-4ddd-9a65-f73ba270424f[3] c7130159-3366-4ddd-9a65-f73ba270424f[3]](https://images2015.cnblogs.com/blog/575577/201703/575577-20170309145953250-1929054151.png)
![5c29962b-1a0a-4598-9039-7156e3bcb75c[3] 5c29962b-1a0a-4598-9039-7156e3bcb75c[3]](https://images2015.cnblogs.com/blog/575577/201703/575577-20170309145954984-313497062.png)
![8376b0d0-f712-40e3-895d-2fb93fc16f4e[3] 8376b0d0-f712-40e3-895d-2fb93fc16f4e[3]](https://images2015.cnblogs.com/blog/575577/201703/575577-20170309145957250-538250552.png)
![10306dbc-58e9-4d00-befe-73d399bcfde2[3] 10306dbc-58e9-4d00-befe-73d399bcfde2[3]](https://images2015.cnblogs.com/blog/575577/201703/575577-20170309150002938-2068444364.jpg)
![13beb221-387b-42d4-b571-23440bc5c8e7[3] 13beb221-387b-42d4-b571-23440bc5c8e7[3]](https://images2015.cnblogs.com/blog/575577/201703/575577-20170309150008813-1960187698.jpg)
![82550240-d70a-49b0-875e-23ddceba9977[3] 82550240-d70a-49b0-875e-23ddceba9977[3]](https://images2015.cnblogs.com/blog/575577/201703/575577-20170309150010313-1820312609.jpg)
![b8097f0d-e1d0-4464-b451-f1492b6fd383[3] b8097f0d-e1d0-4464-b451-f1492b6fd383[3]](https://images2015.cnblogs.com/blog/575577/201703/575577-20170309150011984-1664492229.png)
![688aceed-bc0a-447f-b8ad-08caa70f5483[3] 688aceed-bc0a-447f-b8ad-08caa70f5483[3]](https://images2015.cnblogs.com/blog/575577/201703/575577-20170309150014156-1656507442.png)
![fa3629a5-643f-4dd0-9b99-16767090c194[3] fa3629a5-643f-4dd0-9b99-16767090c194[3]](https://images2015.cnblogs.com/blog/575577/201703/575577-20170309150018609-489249822.png)
![af4f2828-eab7-4e09-aef5-b1ace161f2d2[3] af4f2828-eab7-4e09-aef5-b1ace161f2d2[3]](https://images2015.cnblogs.com/blog/575577/201703/575577-20170309150021969-1147889025.png)
![4e8e1ee8-eb4f-456c-a16c-44faed68a693[3] 4e8e1ee8-eb4f-456c-a16c-44faed68a693[3]](https://images2015.cnblogs.com/blog/575577/201703/575577-20170309150024125-1301009617.png)
![70ababe8-ea31-41f2-9bf9-4c5b2ad8226c[3] 70ababe8-ea31-41f2-9bf9-4c5b2ad8226c[3]](https://images2015.cnblogs.com/blog/575577/201703/575577-20170309150025813-599845217.png)
![19e6036f-98b9-4b89-b004-603ba2a157cc[3] 19e6036f-98b9-4b89-b004-603ba2a157cc[3]](https://images2015.cnblogs.com/blog/575577/201703/575577-20170309150028719-714954782.png)
![6265369b-06e3-4a80-afe5-c7f40ec4b713[3] 6265369b-06e3-4a80-afe5-c7f40ec4b713[3]](https://images2015.cnblogs.com/blog/575577/201703/575577-20170309150031500-255644737.png)