一.文件操作
1.文件基本的读取操作
f = open('chenli.txt') #打开文件 first_line = f.readline() print('first line:',first_line) #读一行 print('我是分隔线'.center(50,'-')) data = f.read()# 读取剩下的所有内容,文件大时不要用 print(data) #打印读取内容 f.close() #关闭文件
2.文件打开基本的读写追加 参数
- r ,只读模式【默认模式,文件必须存在,不存在则抛出异常】
- w,只写模式【不可读;不存在则创建;存在则清空内容】
- x, 只写模式【不可读;不存在则创建,存在则报错】
- a, 追加模式【可读; 不存在则创建;存在则只追加内个文件
"+" 表示可以同时读写某个文件
- r+, 读写【可读,可写】
- w+,写读【可读,可写】
- x+ ,写读【可读,可写】
- a+, 写读【可读,可写】
"b"表示以字节的方式操作
- rb 或 r+b
- wb 或 w+b
- xb 或 w+b
- ab 或 a+b
表示:以b方式打开时,读取到的内容是字节类型,写入时也需要提供字节类型,不能指定编码
2.编写拷贝文件程序
import sys #python3 copy.py source.file target.file if len(sys.argv) < 3: print('Usage:python3 copy.py source.file target.file') sys.exit() with open(r'%s' %sys.argv[1],'rb') as read_f, open(r'%s' %sys.argv[2],'wb') as write_f: for line in read_f: write_f.write(line)
3.文件内的光标移动
1. 文件打开方式为文本模式时,代表读取3个字符
2. 文件打开方式为b模式时,代表读取3个字节
3.其余的文件内光标移动都是以字节为单位如seek表示让光标跳转大到指定位置,tell显示光标那个字节,truncate
4. 语法格式:file.seek(offset, whence=0):
--> offset: 偏移量,需要向前或者是向后移动的字节数
--> whence: 可选值,默认为0, 可选值为1或者2,表示从何处开始计算偏移,具体来说,
--> 0表示从当前位置开始计算偏移
--> 1表示从文件头位置开始计算偏移
--> 2表示从文件尾开始计算偏移
二.函数笔记
1 .python中函数定义
python中函数定义方法: def test(x): "The function definitions" x+=1 return x def:定义函数的关键字 test:函数名 ():内可定义形参 "":文档描述(非必要,但是强烈建议为你的函数添加描述信息) x+=1:泛指代码块或程序处理逻辑 return:定义返回值 调用运行:可以带参数也可以不带 函数名()
2.函数的好处:
代码重用
保持一致性,易维护
可扩展性
3.函数的定义语法
def 函数名(arg1,arg2,arg3): "注释" 函数体 return 返回值 函数名一般是动词 参数、、、 return:函数内部可以有多个return,但只能执行一次,函数就结束调用, 并且会把return后的值作为函数执行的结果返回
函数定义三种形式
无参:应用场景仅仅只是执行一些操作,比如与用户交互,打印
有参:需要根据外部传进来的参数,才能执行相应的逻辑,比如统计长度,求最大值最小值
空函数:设计代码结构
4.函数分为 实参跟形参
#形参:在定义函数时,括号内的参数成为形参 #特点:形参就是变量名
#实参:在调用函数时,括号内的参数成为实参
#特点:实参就是变量值
#在调用阶段实参(变量值)才会绑定形参(变量名)
#调用结束后,解除绑定
5.参数的分类
#参数的分类 #位置参数:按照从左到右的顺序依次定义的参数 #位置形参:必须被传值,并且多一个不行,少一个也不行 #位置实参:与形参按照位置一一对应 def foo(x,y): print(x) print(y) foo('egon',1,2) #关键字实参:指的是按照name=value的形式,指名道姓地给name传值 def foo(name,age): print(name) print(age) foo('egon',18) 默认参数需要注意的问题 #问题一:默认参数必须放在位置参数之后 # def foo(y=1,x): # print(x,y) 问题二:默认参数只在定义阶段赋值一次,而且仅一次 # x=100 # def foo(a,b=x): # print(a,b)foo(age=18,name='egon')