python第三节函数,文件操作
文件操作#以读的方式打开文件# f=open('c.txt',encoding='utf-8')# print(f)# data = f.read() #以读的方式打开# print(data)# print(f.closed) #判断文件是否是关闭状态# print(f.encoding)#输出文件编码# print(f.name) #输出文件名称# print(f.readable())#判断文件是否是读模式# print(f.readline(),end='')#一次只读一行,end去掉print换行符# print(f.readlines()) #读所有行,存成列表形式# f.close() #关闭文件 #以写的方式打开文件:文件有内容则清空,没有内容以及文件就新建# f = open('d.txt',encoding='utf-8',mode='w')# print(f.write('121321\n123123123')) #往文件里写东西# print(f.writable()) #判断文件是否是写模式打开# f.seek(2) #移动光标到第二个位置# f.writelines(['wadasa\n','kkkkkk\n']) #以列表格式写入# f.close() #关闭文件#文件追加# f = open('c.txt','a',encoding='utf-8')# print(f.write('123123')) # #文件修改# import os# read_f = open('c.txt','r') #读文件# write_f =open('cd.txt','w') #写文件# for lien in read_f.readlines(): #for循环输出read_f# if lien.startswith('222'): #判断c.txt是否以222开头# lien='wwwww\n' #成立改成wwww# write_f.write(lien) #把lien写入新建的文件# read_f.close()# write_f.close()# os.remove('c.txt') #删除之前的c.txt# os.rename('cd.txt','c.txt') #把cd改名为c #文件读写方式# f = open('c.txt','r+')#读写# f = open('c.txt','w+')# 先写后读# f = open('c.txt','a+')#追加并读取 #上下文管理with #使用with打开文件# with open('c.txt','r',encoding='utf-8') as f ,open('d.txt') as b_f:# print(f.read())# print(b_f.read()) #补充知识# for i in range(3): #循环1-3# print(i)# if i == 1: #判断遇到1终止循环# break# else: #循环完成则输出,循环被中断不输出# print('+++>') #不常用的,了解 # with open('a.txt','r',encoding='utf-8') as f:# print(f.read(4)) #数字指的是读的是字符## with open('a.txt','rb') as f:# print(f.read(1)) #数字指的是读的是字符 # with open('a.txt','r',encoding='utf-8') as f:# f.seek(3) #seek内指定的数字代表字节# print(f.tell()) #当前光标所在的位置# print(f.read()) # with open('aa.txt','r+',encoding='utf-8') as f:# # f.seek(3) #seek内指定的数字代表字节# # print(f.read())## f.truncate(1) # with open('b.txt','rb') as f: # f.read() # f.seek(3) #默认情况,是以文件起始位置作为开始,往后移动3个bytes # f.read(1) # print(f.tell()) # f.seek(2,1) #1 代表以当前光标所在的位置为开始,往后移动2个 bytes # print(f.tell()) # f.seek(-1,2) #2表以当前光标所在的位置为开始,往后移动2个 bytes # print(f.tell()) # f.seek(0,2) # with open('c.txt','r',encoding='utf-8') as f:# f.seek(0,2)# print('====>',f.read()) # tail -f access.log 日志实时更新# import time# with open('access.log','r',encoding='utf-8') as f:# f.seek(0,2) #光标移动到末尾# while True:# line = f.readline().strip() #循环输出最后一行,去除空格# if line:# print('新增日志',line)# time.sleep(0.5) #神奇的函数,┗|`O′|┛ 嗷~~# 没有函数会有什么问题?## 1.无组织无结构,代码冗余# 2.可读性差# 3.无法统一管理且维护成本高 #自定义函数#先定义后使用,如果没有定义而直接使用,就相当于引用了一个不存在的变量名# def foo():# print('from foo')# print(foo) #函数的使用有两个阶段:定义阶段和使用阶段#语法# def 函数名(参数1,参数2,...)# """文档注释"""# 函数体(内容)# return值(返回的值) #定义函数的三种形式#一、无参函数:如果函数的功能仅仅只是执行一些操作,就定义为无参函数,无参函数没有返回值# def print_star():# print('$$$$'*6)#二、定义有参函数:函数的功能执行依赖于外部传入的参数,有参函数通常都有返回值# def my_max(x,y):# res = x if x>y else y# return res #三元表达式# x =2# y =4# # 原:# if x >y:# print(x)# else:# print(y)# #三元表达式:# res=x if x>y else y #三、空函数# def auth():# """认证"""# pass# def insert():# """插入"""# pass# def select():# ""查询"""# pass# def delete():# """删除"""# pass# def update():# """更新"""# pass#默认参数# def asd(name,age,sex='male'): #形参:sex默认参数# print(name,age,sex)# v =asd('alex',40)# print(v)#默认参数需要注意的问题#一、默认参数必须在非默认参数后面# def register(sex='male',name,age): #在定义阶段就会报错# print(name,age,sex) #二、默认参数在定义阶段就已经赋值了,而且只在定义阶段赋值一次# a=100000000# def foo(x,y=a):# print(x,y)# a=0# foo(1) #默认参数的值通常定义成不可变的类型 #可变长类型参数# def foo(x,y,*args):#*会把所有超出位置定义的实参全部接收,并以元组的格式赋值给args# print(x,y)# print(args)# foo('asd','a12','12',123) #输入的数字相加# def add(*args):# res =0# for i in args:# res+=i# return res# print(add(1,2,3,3,4,4,))# print(add(1,2)) #**会把多出的按关键字定义的实参全部接收# def foo(x,y,**kwargs):# print(x,y)# print(kwargs)# foo(1,2,a=1,name='alex',age=30) # def foo(name,age,**kwargs):# print(name,age)# if 'sex' in kwargs:# print(kwargs['sex'])# if 'height' in kwargs:# print(kwargs['height'])## foo('egon',18,sex='male',height='185')# foo('egon',18,sex='male') #命名关键字参数(了解) # def foo(name,age,*,sex='male',height):# print(name,age)# print(sex)# print(height)# #*后定义的参数为命名关键字参数,这类参数,必须被传值,而且必须以关键字实参的形式去传值 # foo('egon',17,height='185')# def foo(name,age=10,*args,sex='male',height,**kwargs):# def foo(name,age=10,*args,sex='male',height,**kwargs):# print(name)# print(age)# print(args)# print(sex)# print(height)# print(kwargs)## foo('alex',1,2,3,4,5,sex='female',height='150',a=1,b=2,c=3) # def foo(*args):# print(args) # foo(1,2,3,4) # 1,2,3,4 <=====>*(1,2,3,4) #*['A','B','C','D'],=====>'A','B','C','D'# foo(*['A','B','C','D']) #foo('A','B','C','D')# foo(['A','B','C','D']) # # def foo(x,y,z):# print(x,y,z)## # foo(*[1,2,3]) #foo(1,2,3)# foo(*[1,2]) #foo(1,2) # def foo(**kwargs):# print(kwargs)## #x=1,y=2 <====>**{'y': 2, 'x': 1}# # foo(x=1,y=2)## foo(**{'y': 2, 'x': 1,'a':1}) #foo(a=1,y=2,x=1) # def foo(x,y,z):# print(x,y,z)## # foo(**{'z':3,'x':1,'y':2}) #foo(x=1,z=3,y=2)# foo(**{'z':3,'x':1}) #foo(x=1,z=3) # def foo(x,y,z):# print('from foo',x,y,z)## def wrapper(*args,**kwargs):# print(args)# print(kwargs)### wrapper(1,2,3,a=1,b=2) #套用取值,取出位置实参和关键字实参# def foo(x,y,z):# print('from foo',x,y,z)# def wrapper(*args,**kwargs):# print(args) #args=(1,2,3)# print(kwargs) #kwargs={'a':1,'b':2}# foo(*args,**kwargs) #foo(*(1,2,3),**{'a':1,'b':2}) #foo(1,2,3,b=2,a=1)# # wrapper(1,2,3,a=1,b=2)# wrapper(1,z=2,y=3) #套用函数# def foo(x,y,z):# print('from foo',x,y,z)# def wrapper(*args,**kwargs):# # print(args) #args=(1,)# # print(kwargs) #kwargs={'y':3,'z':2}# foo(*args,**kwargs) #foo(*(1,),**{'y':3,'z':2}) #foo(1,z=2,y=3)# # wrapper(1,2,3,a=1,b=2)# wrapper(1,z=2,y=3) #函数返回的值# def foo():# print('from foo')# return None# res=foo()# print(res) '''以三种情况返回值都为None:没有returnreturn 什么都不写return None''' # def foo():# print('from foo')# x=1# return x #指定返回的值# res=foo()# print(res) #return 一个值 函数调用返回的结果就是这个值# def foo():# print('from foo')# x=1# return 1,[2,3],(4,5),{}# res=foo()# print(res) #打印结果:(1,[2,3],(4,5),{})# a,b,c,d=foo() #根据位置取返回的值# print(b) #return 值1,值2,值3,... 返回结果:(值1,值2,值3,...) # t=(1,2,3)# a,_,_=t # 下划线代表什么都不输出# print(a) # t=(1,2,3,4,5,6,7,8,9)# a,*_,c=t #只输出开头和结尾,*_代表中间所有内容为空# print(a)# print(c) #调用函数# def foo():# print('from foo')# def bar(name):# print('name==>',name)#按照有参和无参可以将函数调用分两种# foo() #定义时无参,调用时也无参# bar('alex') #定义时有参,调用时必须有参数 #按照函数的调用形式和出现的位置,分为三种:# foo()#调用函数的语句形式 # def my_max(x,y):# res =x if x>y else y# return res# # res=my_max(1,2)*10000000 #调用函数的表达式形式# # print(res)# res=my_max(my_max(10,20),30) #把函数调用当中另外一个函数的参数# print(res)
转载于:https://blog.51cto.com/liuming66/1926712
python第三节函数,文件操作相关推荐
- Python中的File(文件)操作
Python中的File(文件)操作 针对磁盘中的文件的读写.文件I/O I 输入(input) O输出(Output) 文件操作步骤:1.打开文件 2.读写文件 3.关闭文件 写入文件的操作:(把大 ...
- 详解Python中的File(文件)操作
目录 Python中的File(文件)操作 写入文件的操作: 读取文件的操作: 一.文件操作相关函数 1. open() 打开文件 2. seek() 设置文件指针的位置 3. write() 写入内 ...
- Python基本语法_文件操作_读写函数详解
目录 目录 软件环境 file文件对象 open文件操作 读文件 read读取所有文件内容 readline获取一行内容 readlines读取所有文件内容 readreadlinereadlines ...
- python基础3之文件操作、字符编码解码、函数介绍
内容概要: 一.文件操作 二.字符编码解码 三.函数介绍 一.文件操作 文件操作流程: 打开文件,得到文件句柄并赋值给一个变量 通过句柄对文件进行操作 关闭文件 基本操作: 1 #/usr/bin/e ...
- python匿名函数里用if_python匿名函数 高阶函数 内置函数 文件操作
1.匿名函数 匿名就是没有名字 def func(x,y,z=1): return x+y+z 匿名 lambda x,y,z=1:x+y+z #与函数有相同的作用域,但是匿名意味着引用计数为0,使用 ...
- python codecs.open()及文件操作-文本处理 with open
20210810 以二进制并追加的形式写入文件 20210731 f.write('\n') 换行写入 20210625 https://blog.csdn.net/a543402496/articl ...
- Python十大常用文件操作
日常对于批量处理文件的需求非常多,用Python写脚本可以非常方便地实现,但在这过程中难免会和文件打交道,第一次做会有很多文件的操作无从下手,只能找度娘. 本篇文章整理了10个Python中最常用到的 ...
- python之高级的文件操作shutil模块
shutil --High-level file operations 高级的文件操作模块 os模块提供了对目录或者文件的新建/删除/查看文件属性,还提供了对文件以及目录的路径操作.比如说:绝对路径, ...
- python目录遍历_python文件操作之目录遍历实例分析
本文实例讲述了python文件操作之目录遍历的方法.分享给大家供大家参考.具体分析如下: Python的os模块,包含了普遍的操作系统功能,这里主要学习与路径相关的函数: os.listdir(dir ...
最新文章
- 《帝企鹅日记》观后感
- 你还在为了进高校做教师而读博吗?
- 硬中断 / 软中断的原理和实现
- Service的理解和使用
- 身份验证——《跟我学Shiro》
- Qt把已有工程添加到其他工程中作为子工程或新创建子工程
- linux io阻塞问题
- CYQ.Data 轻量数据层之路 V3.0版本发布-Xml绝对杀手(三十二)
- 微软“黑历史”:一个活了 45 年的愚蠢 Bug!
- nohup方式 真正的后台不挂断运行程序
- 深度学习去雨论文代码_将深度学习研究论文转换为有用的代码
- 遥感图像处理 | 辐射校正
- 模块划分-4 模块划分
- php今日头条抓取正文,今日头条文章爬虫采集 - 八爪鱼采集器
- 证券业上云内参: 深圳证券信息
- python自相关函数提取基音周期_自相关函数法基音周期提取(matlab版)
- 【产业互联网周报】奇安信科创板IPO过会;声网Agora登陆纳斯达克;国产光刻机双工件台供应商华卓精科科创板IPO获受理...
- 2020最新Android开发中高级进阶书籍推荐
- element UI实现el-dialog(弹框)可拖拽功能(网上借鉴)
- 远程服务器返回错误码: (507) Insufficient Storage
热门文章
- 【C++】Google Protocol Buffer(protobuf)详解(一)
- ubuntu mysql emma_Ubuntu 11.10 MySQL客户端 Emma 6.0 中文乱码解决办法
- Java合并两个int数组合并_Java中如何把两个数组合并为一个
- 爬虫python爬取页面请求_Python网络爬虫第三弹《爬取get请求的页面数据》
- coverity代码检测工具介绍_FOREPOST:一种使用反馈驱动学习软件测试的性能检测工具...
- Mybatis复习笔记3:映射文件详解
- mac 配置 php,mac如何配置php环境
- led显示屏建设标准_户外LED显示屏3大防护标准_显示屏应对恶劣天气?
- vba 字体颜色_多掌握一些VBA语句,让自己书写代码更加顺畅
- 二:serverless网站数据库操作