文件操作#以读的方式打开文件# 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第三节函数,文件操作相关推荐

  1. Python中的File(文件)操作

    Python中的File(文件)操作 针对磁盘中的文件的读写.文件I/O I 输入(input) O输出(Output) 文件操作步骤:1.打开文件 2.读写文件 3.关闭文件 写入文件的操作:(把大 ...

  2. 详解Python中的File(文件)操作

    目录 Python中的File(文件)操作 写入文件的操作: 读取文件的操作: 一.文件操作相关函数 1. open() 打开文件 2. seek() 设置文件指针的位置 3. write() 写入内 ...

  3. Python基本语法_文件操作_读写函数详解

    目录 目录 软件环境 file文件对象 open文件操作 读文件 read读取所有文件内容 readline获取一行内容 readlines读取所有文件内容 readreadlinereadlines ...

  4. python基础3之文件操作、字符编码解码、函数介绍

    内容概要: 一.文件操作 二.字符编码解码 三.函数介绍 一.文件操作 文件操作流程: 打开文件,得到文件句柄并赋值给一个变量 通过句柄对文件进行操作 关闭文件 基本操作: 1 #/usr/bin/e ...

  5. python匿名函数里用if_python匿名函数 高阶函数 内置函数 文件操作

    1.匿名函数 匿名就是没有名字 def func(x,y,z=1): return x+y+z 匿名 lambda x,y,z=1:x+y+z #与函数有相同的作用域,但是匿名意味着引用计数为0,使用 ...

  6. python codecs.open()及文件操作-文本处理 with open

    20210810 以二进制并追加的形式写入文件 20210731 f.write('\n') 换行写入 20210625 https://blog.csdn.net/a543402496/articl ...

  7. Python十大常用文件操作

    日常对于批量处理文件的需求非常多,用Python写脚本可以非常方便地实现,但在这过程中难免会和文件打交道,第一次做会有很多文件的操作无从下手,只能找度娘. 本篇文章整理了10个Python中最常用到的 ...

  8. python之高级的文件操作shutil模块

    shutil --High-level file operations 高级的文件操作模块 os模块提供了对目录或者文件的新建/删除/查看文件属性,还提供了对文件以及目录的路径操作.比如说:绝对路径, ...

  9. python目录遍历_python文件操作之目录遍历实例分析

    本文实例讲述了python文件操作之目录遍历的方法.分享给大家供大家参考.具体分析如下: Python的os模块,包含了普遍的操作系统功能,这里主要学习与路径相关的函数: os.listdir(dir ...

最新文章

  1. 《帝企鹅日记》观后感
  2. 你还在为了进高校做教师而读博吗?
  3. 硬中断 / 软中断的原理和实现
  4. Service的理解和使用
  5. 身份验证——《跟我学Shiro》
  6. Qt把已有工程添加到其他工程中作为子工程或新创建子工程
  7. linux io阻塞问题
  8. CYQ.Data 轻量数据层之路 V3.0版本发布-Xml绝对杀手(三十二)
  9. 微软“黑历史”:一个活了 45 年的愚蠢 Bug!
  10. nohup方式 真正的后台不挂断运行程序
  11. 深度学习去雨论文代码_将深度学习研究论文转换为有用的代码
  12. 遥感图像处理 | 辐射校正
  13. 模块划分-4 模块划分
  14. php今日头条抓取正文,今日头条文章爬虫采集 - 八爪鱼采集器
  15. 证券业上云内参: 深圳证券信息
  16. python自相关函数提取基音周期_自相关函数法基音周期提取(matlab版)
  17. 【产业互联网周报】奇安信科创板IPO过会;声网Agora登陆纳斯达克;国产光刻机双工件台供应商华卓精科科创板IPO获受理...
  18. 2020最新Android开发中高级进阶书籍推荐
  19. element UI实现el-dialog(弹框)可拖拽功能(网上借鉴)
  20. 远程服务器返回错误码: (507) Insufficient Storage

热门文章

  1. 【C++】Google Protocol Buffer(protobuf)详解(一)
  2. ubuntu mysql emma_Ubuntu 11.10 MySQL客户端 Emma 6.0 中文乱码解决办法
  3. Java合并两个int数组合并_Java中如何把两个数组合并为一个
  4. 爬虫python爬取页面请求_Python网络爬虫第三弹《爬取get请求的页面数据》
  5. coverity代码检测工具介绍_FOREPOST:一种使用反馈驱动学习软件测试的性能检测工具...
  6. Mybatis复习笔记3:映射文件详解
  7. mac 配置 php,mac如何配置php环境
  8. led显示屏建设标准_户外LED显示屏3大防护标准_显示屏应对恶劣天气?
  9. vba 字体颜色_多掌握一些VBA语句,让自己书写代码更加顺畅
  10. 二:serverless网站数据库操作