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()

 

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄