8 正则表达式详解
基本语法规则
9 yield详解
当你创建了一个列表,你可以逐项地读取这个列表。这个过程就是迭代 [python] viewplaincopy <span style=”font-family:’Times New Roman’;font-size:14px;”>>>> mylist= [1, 2, 3] >>> for i in mylist: … print(i) 1 2 3</span> mylist是一个可迭代对象。当你使用一个列表生成式的时候,你创建了一个列表,也就是一个可迭代对象 [python] viewplaincopy <span style=”font-family:’Times New Roman’;font-size:14px;”>>>> mylist= [x*x for x in range(3)] >>> for i in mylist: … print(i) 0 1 4</span&g...
csv模块
csv 模块逗号分隔值(Comma-Separated Values,CSV,有时也称为字符分隔值,因为分隔字符也可以不是逗号),其文件以纯文本形式存储表格数据(数字和文本)。 纯文本意味着该文件是一个字符序列,不含必须像二进制数字那样被解读的数据。 with open(‘test.csv’, ‘wt’) as f:… writer = csv.writer(f) # 把文件对象传给 csv.writer()… writer.writerow((‘ID’, ‘用户’, ‘类型’)) # 写入标题… for i in range(5):… row = (i, f’用户{i}’, f’类型{i}’)… writer.writerow(row) In: cat test.csvOut:ID,用户,类型0,用户0,类型01,用户1,类型12,用户2,类型23,用户3,类型34,用户4,类型4 with open(‘test.csv’, ‘rt’) as f:… reader =...
logging模块
logging 模块在代码中使用 print() 打印输出是临时性的调试用途的方案。如果希望在线上记录应用日志或者错误日志等, 可以使用 Python 自带的日志模块 logging。常用的日志记录类型有两种, 一种是写到文件里面, 另外一种是终端输出。日志文件存储下来是为了未来回溯的方便, 终端输出是以便于实时查看。logging 模块自带了 6 种级别的日志类型。级别如下(变量值越高说明级别越高): 日志级别变量值 CRITICAL50 ERROR40 WARNING30 INFO20 DEBUG10 NOTSET0 In: import logging In: logging.warning(‘Watch out!’)Out: WARNING:root:Watch out! In: logging.debug(“This message won’t be printed”) 无输出In: logging.basicConfig(level=logging.WARNING) # 使用 basicConfig() 指定默认的日志级别 getLogger() 自定义 l...
os模块
os 模块os 模块中主要包含创建和管理进程或者文件系统内容(比如文件和目录)的函数, os 模块为平台特定的一些模块做了包装, 使得所有平台访问的函数接口相同, 这样就具备了可移植性。下面是 os 模块下一些常用的函数: 方法说明用法举例 os.getcwd()获取当前所在的目录os.getcwd() os.chdir()切换目录os.chdir(‘..’) (.. 为父级目录, 这里表示切换到上一级目录, 相当于命令行的 cd ..) os.getenv()获取系统变量的值(若变量不存在返回 None)os.getenv(‘SHELL’) os.environ.getenv()获取系统变量的值(若变量不存在会引发异常)os.environ.getenv(‘SHELL’) os.listdir()列出目录下的全部文件os.listdir(‘dir’), 列出 dir 目录下的全部文件 os.walk()递归地遍历指定的目录, 对于每个目录都会生成一个元组, 其中包含了目录的路径、该目录下所有的子目录以及该目录下所有文件的列表。它是一个生成器, 可以用 list() 转换成一个列...
pickle模块
实现文件读写
random模块
datetime 模块datetime 模块用来完成日期和时间的解析、格式化和算术运算等。In: import datetime In: now = datetime.datetime.now() # 获取当前时间In: nowOut: datetime.datetime(2018, 4, 14, 21, 49, 7, 733048) In: now.year, now.month, now.day, now.hour, now.minuteOut: (2018, 4, 14, 21, 49) In: today = datetime.date.today()In: todayOut: datetime.date(2018, 4, 14)In: today.year, today.month, today.dayOut: (2018, 4, 14) In: d1 = datetime.date(2010, 9, 1)In: d1Out: datetime.date(2010, 9, 1) 可以使用 datetime.timedelta 对象进行时间的...
sys模块
sys 模块sys 模块提供了特定系统的配置和操作。 方法说明 sys.platform用来构建解释器的操作系统平台 sys.version构建时的版本信息, 包含完整的版本号和构建日期、编译器、平台信息等 sys.version_info同样是版本信息, 但不是字符串, 可以直接获得对应类型版本的信息 sys.path[0]搜索模块的路径列表 sys.modules.get()已经导入的模块列表 sys.getrefcount()查看对象的引用计数 sys.getsizeof()以字节(byte)为单位返回对象大小。这个对象可以是任何类型的对象。 所以内置对象都能返回正确的结果 但不保证对第三方扩展有效,因为和具体实现相关。 作者:江洋林澜链接:https://www.jianshu.com/p/87a40fbac17f來源:简书简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。 sys.getrefcountPython 使用引用计数和垃圾回收来完成字段的内存管理, 当一个对象的引用数降为 0, 就会自动标记为回收。在实际开发中, 可能因为 debug 或者...
传输层学习之一(传输层,UDP)
http://blog.csdn.net/goodluckwhh/article/details/9904159 传输层位于网络层和应用层之间,它的目的是为运行在不同主机上的进程之间的通信提供支持。传输层将网络层提供的不同主机之间的通信服务扩展到了运行在不同主机上的进程之间。 一、传输层 传输层协议为运行在不同主机上的应用之间提供了逻辑通信功能,而网络层则是提供了主机之间的逻辑通信服务。。传输层运行在主机上即端系统上。其基本通信过程为 发送方:传输层接收到来自应用进程的报文,并将其转换为传输层分组,因特网中称为传输层报文段,然后传输层将分组交给网络层,网络层将其交付到目的主机。 接收方:网络层从数据中提取传输层报文段,并将其提交给传输层。 1.和网络层的关系 传输层建立在网路层之上,因而传输层所能提供的服务要受到网络层提供服务的限制,比如假如网络层不能提供带宽和时延保证,那么传输层也无法提供该服务。但是传输层仍能够提供网络层所不能提供的服务,比如IP层是不可靠地服务,但是传输层仍能提供可靠服务。 2.传输层概述 TCP/IP提供了三种传输层协议: UDP:用户...
传输层学习之三(TCP数据传输)
TCP提供了可靠的传输服务,这是通过下列方式提供的: 应用数据被分割成TCP认为最适合发送的数据块。由TCP传递给IP的信息单位称为报文段或段(segment) 当TCP发出一个段后,它启动一个定时器,等待目的端确认收到这个报文段。如果不能及时收到一个确认,将重发这个报文段。 当TCP收到发自TCP连接另一端的数据,它将发送一个确认。这个确认不是立即发送,通常将推迟几分之一秒 TCP将保持它首部和数据的检验和。这是一个端到端的检验和,目的是检测数据在传输过程中的任何变化。如果收到段的检验和有差错,TCP将丢弃这个报文段和不确认收到此报文段(希望发端超时并重发)。 由于IP数据报的到达可能会失序,因此TCP报文段的到达也可能会失序。如果必要,TCP将对收到的数据进行重新排序,将收到的数据以正确的顺序交给应用层。 IP数据报会发生重复,TCP的接收端必须丢弃重复的数据。 TCP还能提供流量控制。TCP连接的每一方都有固定大小的缓冲空间。TCP的接收端只允许另一端发送接收端缓冲区所能接纳的数据。这将防止较快主机致使较慢主机的缓冲区溢出。 一、可靠传输的原理 由于网络环...














