【Python】函数、文件和文件夹操作

第六节:函数

一、函数的定义

函数是组织好的,可重复使用的,用来实现相关功能的代码段。

函数能提高应用的模块性,和代码的重复利用率。Python提供了许多内建函数,比如print()。我们也可以自己创建函数,这被叫做用户自定义函数。

1 定义函数

def 函数名(参数):
    代码1
    代码2
    ......

2 调用函数

函数名(参数)

注意:

1. 不同的需求,参数可有可无。
2. 在Python中,函数必须:先定义后使用。

二、函数中的参数

1、必要传参,也叫位置参数

定义函数时,根据需求必需要传递的参数, 而且,在调用函数时根据函数定义的参数位置顺序来传递参数。

注意:传递和定义参数的顺序及个数必须一致。

2、关键字传参

函数调用,通过“键=值”形式加以指定。可以让函数更加清晰、容易使用,同时也清除了参数的顺序需求。

注意: 函数调用时,如果有位置参数时,位置参数必须在关键字参数的前面,但关键字参数之间不存在先后顺序。

3、默认传参

用于定义函数,为参数提供默认值,调用函数时可不传该默认参数的值(注意:所有位置参数必须出现在默认参数前,包括函数定义和调用)。

4、不定长传参

不定长参数也叫可变参数。用于不确定调用的时候会传递多少个参数(不传参也可以)的场景。此时,来进行参数传递,会显得非常方便。

  1. 不定长普通参数
  2. 不定长关键字参数

三、函数的返回值

return 语句用于返回函数的值,并且退出函数,选择性地使用return 语句, 默认是返回 None

  1. return a, b写法,返回多个数据的时候,默认是元组类型。
  2. return后面可以连接列表、元组或字典,以返回多个值。

四、局部变量和全局变量

1、局部变量

就是在函数内部定义的变量;其作用范围是这个函数内部,即只能在这个函数中使用,在函数的外部是不能使用的;

因为其作用范围只是在自己的函数内部,所以不同的函数可以定义相同名字的局部变量

当函数调用时,局部变量被创建,当函数调用完成后这个变量就不能够使用了

2、全局变量

全局变量和局部变量的区别在于定义在函数的外面,全局变量在整个py文件中声明,全局范围内可以使用;

注意: 当函数内出现局部变量和全局变量相同名字时,函数内部中的 变量名 = 数据 ,此时理解为定义了一个局部变量,而不是修改全局变量的值。如果要修改全局变量,必须使用global。

五、总结

  • 函数的定义:可重复使用的,用来实现某个功能的代码段。

  • 函数使用

  • 定义函数
  • def 函数名():
        代码1
        代码2
        ...
    
  • 调用函数
  • 函数名()
    
  • 函数的参数:

  • 必要传参
  • 默认传参
  • 关键字传参
  • 不定长传参
  • 函数的返回值

  • 作用:函数调用后,返回需要的计算结果
  • return关键字
  • 局部变量和全局变量

  • 局部变量:在函数内部定义的变量,只能在函数内部使用。
  • 全局变量:是在函数外部定义的变量,所有函数内部都可以使用这个变量。
  • 第七节:文件和文件夹的操作

    一、IO流(Stream)

    通过“流”的形式允许计算机程序使用相同的方式来访问不同的输入/输出源。stream是从起源(source)到接收的(sink)的有序数据。我们这里把输入/输出源对比成“水桶”,那么流就是“管道”。

    文件流: 就是源或者目标都是文件的流。

    image.png

    二、文件流的操作

  • 打开文件流
  • 文件对象 = open(目标文件, 访问模式)
    
  • 操作

  • 文件对象.read()
    文件对象.readlines()
    文件对象.readline()
    
  • 文件对象.write()
    
  • seek() 指针操作
  • 关闭

  • 文件对象.close()
    
  • 访问模式
  • 模式 描述
    r 以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。
    rb 以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。
    r+ 打开一个文件用于读写。文件指针将会放在文件的开头。
    rb+ 以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。
    w 打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。
    wb 以二进制格式打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。
    w+ 打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。
    wb+ 以二进制格式打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。
    a 打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
    ab 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
    a+ 打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。
    ab+ 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。

    三、文件和文件夹的操作

    在Python中文件和文件夹的操作要借助os模块里面的相关功能。OS模块是Python标准库中的一个用于访问操作系统功能的模块。

    首先需要导入OS模块: import os

    import os                           # 使用之前先导入
    os.name                             # 查看当前操作系统的名字,"nt"表示Windows,"posix"表示Linux
    os.sep                              # 获取当前系统平台路径分隔符
    os.getcwd()                         # 获取当前工作目录
    os.environ[key]/os.getenv(key)      # 获取当前环境变量值
    os.listdir(path)                    # 列出指定目录path的所有文件和目录名
    os.chdir(path)                      # 切换目录
    os.mkdir(path)/os.makedirs(path)    # 创建单层目录/多层目录
    os.rmdir(path)/os.removedirs(path)  # 删除单层空目录/多层空目录
    os.remove(file_name)                # 删除文件
    os.rename(old_name,new_name)        # 修改文件或目录名称
    os.path.abspath(path)               # 获取指定相对路径的绝对路径
    os.path.split(path)                 # 获取指定路径的目录名或文件名
    os.path.isfile(path)                # 判断指定路径目标是否为文件
    os.path.isdir(path)                 # 判断指定路径目标是否为目录
    os.path.exists(path)                # 判断指定路径是否存在
    os.path.splitext(path)              # 分离文件拓展名
    os.path.join(path,*paths)           # 路径连接
    os.path.base(path)                  # 提取文件名
    os.path.dirname(path)               # 提取文件路径
    os.path.getsize(path)               # 返回文件大小
    

    作者:道友老李

    物联沃分享整理
    物联沃-IOTWORD物联网 » 【Python】函数、文件和文件夹操作

    发表回复