python第三天文件处理 + 函数
1.文件处理
1.1.文件操作的基本用法
f=open('a.txt','r',encoding='utf-8') #open是打开文件的函数,a.txt是要打开的文件,r是只读模式打开,encoding是指定打开文件的字符编码。
print(f.read()) #read 是读取整个文件,文件过大的时候不建议用这种方式打开。
print(f.readline()) #readline是一行一行的读取文件。
1.2.打开文件的模式都有:
常用的有:
- r,只读模式打开,默认模式,文件不存在会报错。不会创建新的文件。
- w,只写模式,不能读,文件不存在则创建,文件存在则覆盖清空改文件。
- a,追加模式,可读,文件不存在则创建,文件存在则继续在文件末尾追加内容。
b模式,以字节的方式操作文件,如,rb,wb,ab。当以字节操作文件的时候,读取的文件内容为字节类型,不能指定编码及encoding不能使用。
不怎么常用的
- r+,读写
- w+,写读
- a+,写读
2.文件处理的其他操作
2.1. read(3)
- 文件打开方式为文本模式时,代表读取3个字符 ### 只有read是以字符方式读取,别的均按照字节。
f=open('a.txt','r',encoding='utf-8')
print(f.read(3))
- 文件打开方式为b模式时,代表读取3个字节
f=open('a.txt','rb')
print(f.read(3))
2.2.seek 移动文件读取光标到指定位置
f=open('a.txt','rb')
f.seek(3,0)
seek中的3代表读取三个字节,0代表从问价开头读取,可不填 默认为0.另外还有 1从光标当前位置读取,2从文件末尾读取。
=============================================================
函数
1.函数的优点:
- 解决代码冗余;
- 结构清晰方便管理;
- 可扩展性强;
2.函数的使用必须先定义,后调用。 #若没有定义直接调用相当于调用一个不存在的函数,必然报错。
函数在定于阶段只会监测语法,不会执行代码,真正执行代码是在调用阶段。
3.函数的基本语法
def 函数名(arg1,arg2,arg3):
"注释"
函数体 即代码部分,该函数的主体。
return 返回值
return是指函数执行完或者没有正常结束,定义的一个返回值。
函数内部可以有多个return,但是只能执行一次,函数就结束调用了。并且把return后边的值作为函数执行结果的返回。
4.函数定义的三种形式。
- 无参:应用场景为只是执行一些操作,比如打印信息等等
- 有参:根据外部传来的参数才能执行相应的逻辑。比如用户登录等
- 空函数:用来预留或者说是设计代码结构的时候使用
5.函数的返回值return
return的返回值没有任何限制
没有return的时候默认返回 None
6.函数的参数
(1).位置:按照从左到右的顺序依次定义的参数
def test(x,y):
print(x)
print(y)
test(1,2)
即x对应1,y对应2.是按照从左到右一一对应,参数不能多也不能少。
(2).关键字参数:按照key=value的形式定义参数
注意事项:关键字参数必须在位置参数的后边。
同一个形参不能重复传值。
def test(name,age):
print(name)
print(age)
test(age=18,name='yxwang')
(3).默认参数:形参在定义时就已经为其赋值
注意事项:只在定义时赋值;
默认参数必须在位置参数的后边;
默认参数一般定义成不可变类型;
def test(x,y=111):
print(x)
print(y)
test(100,456)
(4).可变长参数:用户在输入的时候可以传任意参数。
按照位置参数和关键字形式定义,形参分为你两种,*args *kwargs
def aa(x,y,*args):
print(x)
print(y)
print(args)
aa(1,2,34,42,32,123)
def aa(x,y,**kwargs):
print(x)
print(y)
print(kwargs)
aa(y=1,x=3,a=3,c='qe')