【Python快速上手(十)】

目录

  • Python快速上手(十)
    • Python3 作用域和OS 文件/目录方法
      • Python3 作用域
        • 1. 内置作用域(Built-in Scope)
        • 2. 全局作用域(Global Scope)
        • 3. 嵌套作用域(Enclosing Scope)
        • 4. 局部作用域(Local Scope)
        • 作用域查找规则
        • 注意事项
      • Python3 OS 文件/目录方法
        • 文件操作
        • 目录操作
        • 路径操作
        • 注意事项

Python快速上手(十)

Python3 作用域和OS 文件/目录方法

Python3 作用域

作用域(Scope)是指变量在程序中可被访问的范围,Python 中有四种作用域:内置作用域、全局作用域、嵌套作用域和局部作用域。理解作用域是编写 Python 程序的基础。

1. 内置作用域(Built-in Scope)

内置作用域是 Python 解释器自带的作用域,包含了内置函数和内置对象。

# 内置作用域示例
print(len([1, 2, 3]))  # 内置函数 len()
x = int("10")          # 内置函数 int()
2. 全局作用域(Global Scope)

全局作用域是指在模块层级定义的作用域,包含了在模块顶层定义的变量、函数和类等。

# 全局作用域示例
x = 10                 # 全局变量
def func():
    print("Hello")     # 全局函数
class MyClass:
    pass               # 全局类
3. 嵌套作用域(Enclosing Scope)

嵌套作用域是指内部函数可以访问外部函数中定义的变量的作用域,这种情况通常出现在闭包中。

# 嵌套作用域示例
def outer():
    x = 10
    def inner():
        print(x)       # 内部函数可以访问外部函数的变量 x
    return inner
4. 局部作用域(Local Scope)

局部作用域是指在函数、方法或类的内部定义的作用域,包含了在函数内部定义的变量、函数和类等。

# 局部作用域示例
def func():
    y = 20             # 局部变量
    print(y)
作用域查找规则

在 Python 中,变量的作用域查找是按照 LEGB 规则进行的,即:

  • L(Local):局部作用域,包含了在函数内部定义的变量。
  • E(Enclosing):嵌套作用域,指的是内部函数可以访问外部函数中定义的变量。
  • G(Global):全局作用域,包含了在模块顶层定义的变量。
  • B(Built-in):内置作用域,包含了 Python 解释器自带的内置函数和内置对象。
    Python 在查找变量时会按照从内到外的顺序进行,即先在局部作用域查找,然后是嵌套作用域、全局作用域和内置作用域。
注意事项
  • 了解作用域的概念对于理解 Python 程序中变量的可见范围和生命周期非常重要。
  • 在 Python 中,可以通过 global 关键字将变量声明为全局变量,从而在局部作用域中修改全局变量的值。
  • 修改嵌套作用域(enclosing 作用域,外层非全局作用域)中的变量则需要 nonlocal 关键字。

Python3 OS 文件/目录方法

python 的 os 模块提供了许多用于处理文件和目录的方法,包括文件操作、目录操作、路径操作等。

文件操作
  1. 文件重命名
    import os
    
    os.rename("old.txt", "new.txt")  # 将 old.txt 重命名为 new.txt
    
  2. 文件删除
    os.remove("file.txt")  # 删除文件 file.txt
    
  3. 文件复制
    import shutil
    
    shutil.copy("source.txt", "destination.txt")  # 复制文件 source.txt 到 destination.txt
    
目录操作
  1. 创建目录
    os.mkdir("new_directory")  # 在当前目录下创建新目录 new_directory
    
  2. 递归创建多级目录
    os.makedirs("path/to/new/directory")  # 递归创建多级目录 path/to/new/directory
    
  3. 删除目录
    os.rmdir("directory")  # 删除空目录 directory
    
  4. 递归删除目录及其内容
    shutil.rmtree("directory")  # 递归删除目录 directory 及其所有内容
    
路径操作
  1. 获取当前工作目录
    current_directory = os.getcwd()  # 获取当前工作目录
    
  2. 改变当前工作目录
    os.chdir("new_directory")  # 改变当前工作目录到 new_directory
    
  3. 构建路径
    path = os.path.join("directory", "file.txt")  # 构建路径,返回 "directory/file.txt"
    
  4. 获取路径基本信息
    base_name = os.path.basename("/path/to/file.txt")  # 获取文件名,返回 "file.txt"
    directory_name = os.path.dirname("/path/to/file.txt")  # 获取目录名,返回 "/path/to"
    absolute_path = os.path.abspath("file.txt")  # 获取文件的绝对路径
    
  5. 检查路径有效性
    exists = os.path.exists("/path/to/file.txt")  # 检查路径是否存在
    is_file = os.path.isfile("/path/to/file.txt")  # 检查路径是否是文件
    is_directory = os.path.isdir("/path/to/directory")  # 检查路径是否是目录
    
  6. 获取路径文件大小
    file_size = os.path.getsize("/path/to/file.txt")  # 获取文件大小(字节数)
    
注意事项
  • 在使用 os 模块时要注意跨平台性,某些方法在不同操作系统上可能表现不一样。
  • 在对文件和目录进行操作时,务必小心,避免意外删除或修改重要文件。
  • 对于需要递归操作的方法(如删除目录),务必小心,避免意外删除重要文件或目录。
  • 29
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值