FTP做作业用到的知识点:

一: os.path 模块下常用的用法

os.path.abspath(file) #返回的是.py文件的绝对路径(完整路径)

os.path.dirname(file) #返回的是.py文件的目录

os.path.dirname(os.path.abspath(file)

os.path.isfile(file) #测试指定参数是否是一个文件

os.path.existsfile() #测试指定文件是否存在

os.path.join(file) #将目录名和文件的基名拼接成一个完整的路径

os.stat(file).st_siaz #获取一个文件的大小

os.path.isdir(file) #用于判断对象是否为一个目录

参考博客:https://www.cnblogs.com/renpingsheng/p/7065565.html

二: sys 模块下常用的用法

  • 1 .sys.argv

在一个luffy_server.py文件里面导入sys模块print(sys.argv)或者print(sys.argv[0]) 是指这个脚本本身

  1. #luffy_server.py文件
  2. import sys
  3. print(sys.argv)
  4. 返回:这个脚本本身,列表形式
  5. ['E:/模块三__FTP作业_2018__11__08/luffyFTP/server/bin/luffy_server.py']
  • 2.sys.path.append()

    sys.path —— 动态地改变Python搜索路径

    在python中导入的package或module不在环境变量PATH中,那么可以使用sys.path.apend 将要导入的package或module加入到PATH环境变量中

    import os, sys

    BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(file)))

    print(BASE_DIR) #E:\模块四__作业\FTP\server

    sys.path.append(BASE_DIR)

三,字典 update()方法

  1. update()
  2. Python update() 函数把字典参数 dict2 key/value(键/值) 对更新到字典 dict 里。
  3. 参考博客:http://www.runoob.com/python3/python3-att-dictionary-update.html

四:zfill()方法

参考博客:http://www.runoob.com/python3/python3-string-zfill.html

五:反射:hasattr,getattr,setattr,delattr

类的反射特点:类,只能找类里的成员对象

博客链接:https://www.cnblogs.com/sunny7/p/9715856.html

五:yield的应用:

  1. # yield的应用,在FTP作业显示进度条的应用
  2. def run():
  3. count = 0
  4. while True:
  5. n = yield count
  6. print('--->', n, count)
  7. count +=1
  8. g = run()
  9. g.__next__()
  10. g.send('alex')
  11. g.send('jack')
  12. g.send('raom')
  13. g.send('sd')
  14. 返回结果:
  15. ---> alex 0
  16. ---> jack 1
  17. ---> raom 2
  18. ---> sd 3
  19. 下面是应用的例子:显示进度条
  20. def progress_bar(self,total_size,current_percent =0,last_percent = 0): #
  21. while True:
  22. received_size = yield current_percent
  23. current_percent = int(received_size / total_size * 100)
  24. if current_percent > last_percent: # 当前的比上一次的大了
  25. print('#' * int(current_percent / 2) + '{percent} %'.format(percent=current_percent), end='\r',
  26. flush=True) # 打印进度的时候覆盖上一次的,进度条,后面要加换行\n
  27. last_percent = current_percent # 把本次循环的percent赋值给last

六: 模块 configparser

博客链接:https://www.cnblogs.com/sunny7/p/9906491.html

七:shelve模块

  1. # shelve模块
  2. # 向内存里存字典一样把数据存在硬盘里
  3. import shelve
  4. s = shelve.open('') #打开一个文件
  5. print(s) #<shelve.DbfilenameShelf object at 0x0000000001DAC0B8>
  6. list(s.keys())
  7. s['name'] = 'alex'
  8. s['age'] = 18
  9. print(list(s.keys())) #['name', 'age'
  10. print(s['name']) #alex
  11. print(s['age']) #18
  12. s.close()
  13. # 应用:
  14. import shelve
  15. d = shelve.open('shelve_test')
  16. class Test():
  17. def __init__(self,n):
  18. self.n = n
  19. t = Test(123)
  20. t2 = Test(123987456)
  21. name = ['alex','rain','test']
  22. d['test'] = name
  23. d['t1'] = t
  24. d['t2'] = t2
  25. d.close()

FTP做作业用到的知识点:的更多相关文章

  1. 课下选做作业实现mypwd

    2019-2020-1 20175227 <信息安全系统设计基础> 课下选做作业实现mypwd 要求 学习pwd命令 研究pwd实现需要的系统调用(man -k; grep),写出伪代码 ...

  2. 课下选做作业MyOD

    2019-2020-1 20175227 <信息安全系统设计基础> 课下选做作业MyOD 要求 复习c文件处理内容 编写myod.c 用myod XXX实现Linux下od -tx -tc ...

  3. 课下选做作业MySort

    20175227张雪莹 2018-2019-2 <Java程序设计> 课下选做作业MySort 要求 注意:研究sort的其他功能,要能改的动代码,需要答辩 模拟实现Linux下Sort ...

  4. [LeetCode]1450. 在既定时间做作业的学生人数

    给你两个整数数组 startTime(开始时间)和 endTime(结束时间),并指定一个整数 queryTime 作为查询时间. 已知,第 i 名学生在 startTime[i] 时开始写作业并于 ...

  5. HDU1789 Doing Homework again 做作业【贪心】

    题目链接:https://vjudge.net/problem/HDU-1789 题目大意: 给出N个作业的截至日期,和N个作业不交所扣掉的分数,要求输出扣除分数做少的方案. 解析: 与上一道销售商品 ...

  6. JS基础语法---阶段复习+作业练习+接下来知识点heads up

    调试:调试代码---高级程序员都是从调试开始的 调试: 写代码---打开浏览器--F12(开发人员工具)--->Sources---双击文件,在某一行代码前面点击一下(出现的东西就是断点) 一元 ...

  7. python day 16: FTP脚本作业用例图,类图,活动图与代码重写

    目录 python day 16 1. FTP脚本的用例图 python day 16 2019/10/22 - 2019/10/26 学习资料来自老男孩教育 1. FTP脚本的用例图 老师的讲解视频 ...

  8. python第二十二天-----在做作业当中............

    作业 1, ATM:模拟实现一个ATM + 购物商城程序 额度 自定义实现购物商城,买东西加入 购物车,调用信用卡接口结账可以提现,手续费5%支持多账户登录支持账户间转账记录每月日常消费流水提供还款接 ...

  9. 第三模块:面向对象&网络编程基础 第4章 FTP项目作业讲解

    01-FTP项目需求 02-FTP项目框架搭建 03-FTP项目用户认证 04--FTP项目制定标准定长消息头 05-FTP项目下载功能开发 06-FTP项目下载功能开发2 07-FTP项目ls文件列 ...

随机推荐

  1. 国内最全的Spring Boot系列之二

    历史文章 <国内最全的Spring Boot系列之一> 视频&交流平台 SpringBoot视频:http://t.cn/R3QepWG Spring Cloud视频:http:/ ...

  2. spring boot 请求地址带有.json 兼容处理

    项目以前时spring mvc的,现在升级为spring boot ,有些请求地址带有.json后缀,在请求spring boot项目时,无法匹配控制器,spring boot默认选择禁用后缀模式匹配 ...

  3. WEB日志分析工具(Webslizer和AWstats)

    https://www.cnblogs.com/xiaowenshu/p/10030139.html#top

  4. 海外aws-ubuntu-16.04系统使用ansible安装tidb

    本以为按照官方文档会比较顺利,没想到还是遇到了几个坑,毕竟pingcap不能考虑到所有问题 环境: 1.ubuntu:16.04LTS 2.python:2.7 小坑:因为第一次使用ubuntu,没想 ...

  5. element-ui:el-table时间格式化

    如果想对表格某一列的内容格式化,可用 formatter 属性.属性绑定格式化的方法即可 <el-table-column prop="update_time" label= ...

  6. node图片资源捉取

    开头先简单说明一下,因为网络资源上最多的资源就是图片,所以在这里也只简单的捉取了图片资源,至于其他的文档,音乐等我是没有试过的.所以暂时还是以图片为案例!!! Step1 首先我们需要加载我们需要的资 ...

  7. Django中ORM实际应用

    1. Django中ORM的使用 1. 手动新建一个数据库 2. 告诉Django连接哪个数据库 settings.py里面配置数据库连接信息: # 数据库相关的配置项 DATABASES = { ' ...

  8. yum管理工具

    yum:也是一个rpm包的管理工具,可以实现自动解决rpm包的依赖关系(自动安装依赖顺序进行rpm包的安装) 为何rpm包会有依赖关系? 制作rpm的人,在制作rpm包的时候,就将这个rpm的所依赖的 ...

  9. 搭建redis-sentinel(哨兵机制)集群

    redis怎么才能做到高可用 对于redis主从架构,slave可以对应多个本身可以保障高可用,但是对于一个master节点,如果宕机,整个缓存系统就无法进行写的操作,显然整个系统会无法做到高可用 s ...

  10. 安装VMware tools

    1.发现在vmware中无法复制粘贴,经查询后Centos精简版是没有VMware tools的.2.df是用来看磁盘空间使用情况的.3.rpm包的格式:name+version(主版本+此版本+修正 ...