服务端
1 | #!/usr/bin/env python |
Seal Tips
1 | #!/usr/bin/env python |
1 | #!/usr/bin/env python |
返回的是一个文件的句柄,一个file对象
open(file, mode=’r’, buffering=None, encoding=None, errors=None, newline=None, closefd=True):
file: 代表文件的路径
mode: 是代表文件的操作模式 r w b + t 等等
buffering:0,1,>1三个,0代表buffer关闭(只适用于二进制模式),1代表line buffer(只适用于文本模式),>1表示初始化的buffer大小;
encoding: 指定返回的数据采用何种编码
errors: strict,ignore,当取strict的时候,字符编码出现问题的时候,会报错,当取ignore的时候,编码出现问题,程序会忽略而过,继续执行
newline: 读取的时候->不指定newline默认开启Universal new line mode,其实就是相当于python2中rU模式,也就是文件无论是windows下的换行符”\r\n”还是linux下的”\n”都会被转换为”\n”
写入的时候->不指定newline会根据当前系统的默认换行符进行写入
closefd:默认是为True,参数中的file此时是传入文件的路径,如果设置成False那么只能接受fd
在centos7中网卡名称是随机的一串非常的不友好,被称为”预测命名规则“,但我们还是希望eth0或者em1的 可以参考下面的方法
迭代器是一种方法数组或者说集合的一种方式,也是一种对象,只有next方法,不能采用索引下标的方式方法,迭代一个集合数组不需要这个数据的所有元素都存在只有在用到的时候在存在即可1
2
3
4
5lst = range(10)
print(type(lst)) # 输出是 <type 'list'> 这是一个list
new_lst = iter(lst)
print(new_lst) # 输出是 <listiterator object at 0x107b1e510> 这个是迭代器的对象
new_lst.__next__() # 迭代器使用next()方法返回迭代器的下个值如果下一个没有值,就会出现一个StopIteration的异常
把一个返回迭代器的函数称之为生成器,python的函数一般是使用return 进行返回值,如果采用yield 那么这个函数就不是普通的函数了 这个函数成为生成器
而这个函数返回的就是一个迭代器。1
2
3def func():
print("Start")
yield 1
函数是个好东西,我觉得函数要比类用的更多,函数化编程从维护和开发中都带来了很多方便,函数就好比是模块,程序是由多个函数模块组装起来的乐高玩具
python中定于函数使用def关键字,如下:1
2
3
4
5
6def func(argv):
"""
这是注释
"""
somecode
return something
其中func()就是一个函数,argv是函数的参数不是必须的,return 也不是必须的,没有return 就意味着函数只是执行,没有返回值是None
定义函数是不会执行函数的,上面我们只是定义了一个名为func的函数,并没有被执行,只有函数被调用的时候才会被执行