python笔记

`

三、常用模块功能

1.文件IO操作

使用 open() 函数创建或打开文件

open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)
  • file:表示将要打开的文件的路径,也可以是要被封装的整数类型文件描述符。
  • mode:是一个可选字符串,用于指定打开文件的模式,默认值是 'r'(以文本模式打开并读取)。可选模式如下:
r读取(默认)
w写入,并先截断文件
x排它性创建,如果文件已存在则失败
a写入,如果文件存在则在末尾追加
b二进制模式
t文本模式(默认)
+更新磁盘文件(读取并写入)
  • buffering:是一个可选的整数,用于设置缓冲策略。

  • encoding:用于解码或编码文件的编码的名称。

  • errors:是一个可选的字符串,用于指定如何处理编码和解码错误(不能在二进制模式下使用)。

  • newline:区分换行符。

  • closefd:如果 closefd 为 False 并且给出了文件描述符而不是文件名,那么当文件关闭时,底层文件描述符将保持打开状态;如果给出文件名,closefd 为 True (默认值),否则将引发错误。

  • opener:可以通过传递可调用的 opener 来使用自定义开启器。

    
    #mode = 'w' 则会清除文件内容,重新往文件里面写值   #mode = 'a' 则会再文件末尾追加字符串
    Test = open('D:\\Pythons.txt', mode='w', encoding='utf-8') 
    Test.write('看博客的人是帅哥')
    Test.close() #使用完成一定要关闭文件,否则会导致文件一直被占用
    

也可使用with as 打开文件,这样使用完会自动关闭文件

with open('D://Pythons.txt',mode='a', encoding='utf-8') as test:
    test.write('看博客的人是帅哥')

对于文件的读操作,Python 文件对象提供了三个函数,如下所示:

函数描述
read(size)读取指定的字节数,参数可选,无参或参数为负时读取所有
readline()读取一行
readlines()读取所有行并返回列表
with open('D:\\Pythons.txt', mode='r', encoding='utf-8') as rf:    
    print('readline-->', rf.readline())    
    print('read-->', rf.read(8))    
    print('readlines-->', rf.readlines())

2.OS模块

python提供不通操作系统的接口,并且将其用统一的接口封装调用,提高代码的可移植性

函数描述
os.getcwd()获取当前路径
os.listdir(path)返回路径下所有的文件夹
print(os.path.abspath(path)返回指定路径下的绝对路径
os.path.split(path)拆分制定路径的目录与文件
os.path.join(path, *paths)将一个或多个 path(文件或目录) 进行拼接。
os.path.getctime(path)返回 path(文件或目录) 在系统中的创建时间。
os.path.getmtime(path)返回 path(文件或目录)的最后修改时间。
os.path.getatime(path)返回 path(文件或目录)的最后访问时间。
os.path.exists(path)判断 path(文件或目录)是否存在,存在返回 True,否则返回 False。
os.path.isdir(path)判断 path 是否为目录。
os.path.isfile(path)判断 path 是否为文件。
os.path.getsize(path)返回文件大小
os.mkdir()创建一个目录,之前的目录不存在会报错
os.chdir(path)将当前工作目录更改为 path。
os.system(command)调用 shell 脚本。
  1. 异常捕捉(和C#一样 catch变成了except)

try:
    for i in os.path.split('D://Pythons.txt'):
        print(i)
except:
    pass
finally:  
    print('看博客的人永远最帅')
  • try: 正常代码块,出现异常时会被捕捉
  • except:异常代码块,当‘try’中代码出现异常时,会被捕捉,然后执行except逻辑语句。
  • finally:不管代码是否抛出异常最终都会执行finally下的逻辑语句,优先级最低,最后执行。

4.装饰器

装饰器分为装饰函数与业务函数两部分,在业务函数上添加 @装饰函数(类)名使用方法上可分为基于函数与基于类的使用方式,实际上装饰器的 @... 相当于将被装饰的函数(业务函数)作为参数传入装饰函数(类)。

基于函数

# 装饰函数
def funA(fun):
    def funB(*args, **kw):
        print('函数 ' + fun.__name__ + ' 开始执行')
        fun(*args, **kw)
        print('函数 ' + fun.__name__ + ' 执行完成')
    return funB

@funA
# 业务函数
def funC(name):
  print('Hello', name)

funC('Jhon')

基于类

class Test(object):
    def __init__(self, func):
        print('函数名是 %s ' % func.__name__)
        self.__func = func
    def __call__(self, *args, **kwargs):
        self.__func()
@Test
def hello():
    print('Hello ...')
    
hello()

5.global & nonlocal

global :关键字,可以在内部作用域内修改外部作用域的变量


d = 0
def Add(a, b):
    global d
    d = a + b
    print('内部作用域 : ', d) #输出10

Add(5, 5)
print('外部作用域 : ', d) #输出10

内部作用域内内 global 标记的变量 可以在外部作用域不存在 此时为函数内的局部变量

外部作用域的d可在任意顺序定义,但输出的数据与程序的执行顺序有关

nonlocal:关键字,用于修改嵌套作用域中的变量

def outer():
    d = 1
    def inner():
        nonlocal d
        d = 2
        print('inner:', d) #输出2
    inner()
    print('outer:', d) #输出2
outer()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值