python io 2020.3.17

发布于 2020-03-17  38 次阅读


Table of Contents

当文件过大时,不要直接读到末尾,时间慢,消耗内存大
read可以,加上参数,用while来循环读取,read(1024)返回为None则退出循环
for 循环读取,read返回的是一个可迭代的对象
readline()和readlines() # 用的不多,返回是一个列表,带\n

write() 写文件

有两种方法,write和writelines() # 里面是一个列表,换行需要带\n

flush,立即刷新缓冲区

flush是刷新缓冲区
换行符也算一个字节

buffering缓冲 

python中默认都不填写缓冲参数
0是无缓冲,1是行缓冲,大于1是指定缓冲大小,负数是默认缓冲,close之后会自动将缓冲区内容刷新到磁盘

文件偏移量

查看当前偏移量:查看用f.tell()来查看当前偏移量
更改偏移量 :seek(offset[,whence]) 第一个参数是正负偏移量,1就是第二个字节,第二个参数是相对位置,0是开头,1是当前位置,2是末尾
注:当前位置只能二进制模式使用

文件描述符

定义:每一个IO都会有一个整数作为编号,这个编号就叫做文件描述符
查看:查看文件描述符用f.fileno()

扩展延伸:文件流

流:I/O操作就是简单的移动复制,这种就是字节流,sys中默认有三种流,标准输入:sys.stdin 标准输出:sys.stdout 标准错误:sys.stderr

with语句

文件对象,锁对象常用操作
语法:with open("tst") as f:  #这样自动退出文件流

目录操作

os和os.path模块
获取文件大小os.path.getsize(file),查看文件列表os.listdir(dir),查看文件是否存在os.path.exists(),判断文件类型os.path.isfile(file),删除文件os.remove(file)

网络基础

应用层 : 提供用户服务,具体功能有应用程序实现
表示层 : 数据的压缩优化加密
会话层 : 建立用户级的连接,选择适当的传输服务
传输层 : 提供传输服务
网络层 : 路由选择,网络互联
链路层 : 进行数据交换,控制具体数据的发送
物理层 : 提供数据传输的硬件保证,网卡接口,传输介质
优点

  1. 建立了统一的工作流程
  2. 分部清晰,各司其职,每个步骤分工明确
  3. 降低了各个模块之间的耦合度,便于开发

TCP/IP模型

应用层,传输层,网络层,网络接口

特殊IP

192.168.1.0:0表示一个网段--> 局域网
192.168.1.1:同一个网关 -->
192.168.1.255:用作广播

端口号

是网络地址的一部分,来区分主机上不同应用的网络程序
取值范围:1-65535
1-1023系统应用或者大众程序监听端口
1024-65535 自用端口,一般都使用这些端口,最好用一万以上

常用二进制和十进制

高内聚,低耦合

『函数』
高内聚:尽可能类的每个成员方法只完成一件事(最大限度的聚合)
低耦合:减少类内部,一个成员方法调用另一个成员方法
『类』
高内聚低耦合:减少类内部,对其他类的调用
『功能块』
高内聚低耦合:减少模块之间的交互复杂度(接口数量,参数数据)
横向:类与类之间、模块与模块之间
纵向:层次之间
尽可能,内容内聚,数据耦合