Java转python第三天
1、文件读取
f = open('b.txt' ,mode='r' ,encoding='utf-8') #打开文件 print(f.read(8)) #限制字符数读取 print(f.read()) #读取全部 print(f.readline()) #读取一行 print(f.readlines()) #读取所有,返回一个列表 for i in f:print(i.strip()) #循环读取所有 f.write("写入内容") #写入 f.close() #关闭文件
2、mode类型
SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。# r:按字符读, # w:按字符写 # a:按字符追加 # r+:读写 # w+:写读 # a+:追加写读 # 加b是以字节方式读写 # r+b: # w+b: # a+b:
3、常用方法
f.seek(0) #移动光标 f.seek(0,2) #移动光标到末尾,第二个参数代表位置 #0:默认开头 #1:当前位置 #2:结尾 f.tell() #获取当前光标位置 f.readable() #获取是否可读 f.writeable() #获取是否可写
#同时打开多个文件,可省去close() with open('a.txt') as read_f , open('b','w') as write_f: read_f.read(); write_f.write();
4、函数的动态参数
# 动态参数:可以接受任意个参数 #*args : 组织成一个元组 #**kwargs: 组织成一个字典 def fun(one,*args): print(one,args) fun('one','b','c') #结果:one ('b', 'c') def fun(**kwargs): print(kwargs) fun(a=1,b=2) #结果:{'a': 1, 'b': 2} #实参是一个元组,动态添加 def fun(*args): print(args) fun(1,2,3,4,5) l = [1,2,3,4,5] fun(*l) #实参是一个字典,动态添加 def fun(**kwargs): print(kwargs) fun(a=1,b=2) d = {'a':1,'b':2} fun(**d)
5、命名空间
''' global关键字 ''' a = 1 def func(): # 在局部作用域对全局作用域的全局变量进行修改(限于字符串,数字) global a a = 2 # 声明一个全局变量。 global b b = 3 func() print(a) #结果:2 print(b) #结果:3 ''' nonlocal关键字 不能更改全局变量 在局部作用域中,对父级作用域(或者更外层作用域非全局作用域)的变量进行引用和修改,并且引用的哪层,从那层及以下此变量全部发生改变 ''' def v1(): b = 1 def v2(): b = 2 print(b) #打印v2中的变量d,结果:2 def v3(): #改变上一级空间及v2()中的变量,并不能改变v1()中的变量 nonlocal b b = 3 print(b) #打印v3中的变量d,结果:3 v3() print(b) #打印v2中的变量d,此时在v3()中改变了v2()中的d,结果:3 v2() print(b) #打印v1中的变量d,结果:1 v1()
6、闭包
''' 闭包:嵌套函数,内部函数调用外部函数的变量 ''' #不使用闭包 def fun(): a = 1 def fun2(): print(a) fun2() fun() #使用闭包,可以访问内部函数中的数据,并且不需要每次都重新分配内存空间 def fun(): a = 1 def fun2(): print(a) return fun2 fu = fun() fu()

更多精彩