【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 = 10def inner():print(x)       # 内部函数可以访问外部函数的变量 xreturn 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 osos.rename("old.txt", "new.txt")  # 将 old.txt 重命名为 new.txt
    
  2. 文件删除
    os.remove("file.txt")  # 删除文件 file.txt
    
  3. 文件复制
    import shutilshutil.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 模块时要注意跨平台性,某些方法在不同操作系统上可能表现不一样。
  • 在对文件和目录进行操作时,务必小心,避免意外删除或修改重要文件。
  • 对于需要递归操作的方法(如删除目录),务必小心,避免意外删除重要文件或目录。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/5875.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Django框架之模型层

一、前期准备 1、测试脚本 当你只是想要测试Django中的某一个py文件内容,那么你可以不用书写前后端交互的形式,而是直接写一个测试脚本即可 这内容其实就是最外部 manage.py 文件中的上面几句话 脚本代码无论是写在应用下的 tests.py文件还是自己新建…

结合创新!频域+时间序列,预测误差降低64.7%

频域时间序列不仅能提供更丰富的信息,还能提高模型性能和预测准确性。对于论文er来说,是个可发挥空间大、可挖掘创新点多的研究方向。 具体来说: 通过将复杂的时间序列数据转换成简单的频率成分,我们可以更容易地捕捉到数据的周期…

【人工智能基础】逻辑回归实验分析

实验环境:anaconda、jutpyter Notebook 实验使用的库:numpy、matplotlib 一、逻辑回归 逻辑回归是一个常用于二分类的分类模型。本质是:假设数据服从这个分布,然后使用极大似然估计做参数的估计。 二、实验准备 引入库、预设值…

Sam Altman:那些我希望有人能早点告诉我的事

大家好,我是木易,一个持续关注AI领域的互联网技术产品经理,国内Top2本科,美国Top10 CS研究生,MBA。我坚信AI是普通人变强的“外挂”,所以创建了“AI信息Gap”这个公众号,专注于分享AI全维度知识…

【跟我学RISC-V】(一)认识RISC-V指令集并搭建实验环境

写在前面 现在计算机的体系架构正是发展得如火如荼的时候,占领桌面端市场的x86架构、占领移动端市场的arm架构、在服务器市场仍有一定地位的mips架构、国产自研的指令集loongarch架构、还有我现在要讲到的新型开源开放的RISC-V指令集架构。 我先说一说我的学习经历…

初始计算机网络

TCP/IP TCP/IP模型 TCP/IP网络模型:对于不同设备之间的通信,就需要网络通信,而设备是多样性的,所以要兼容多种多样的设备,就协商出了一套通用的网络协议。 TCP/IP分层 这个网络协议是分层的,每一层都有…

【MATLAB】GUI初步设计

MATLAB界面设计 前言一、基本步骤1.1 创建GUI文件1.2 界面设计 总结 前言 为了完成图像处理的作业,简直就是生活不易啊 找到一个很棒的教学视频 基于MATLAB的GUI界面设计流程讲解 一、基本步骤 1.1 创建GUI文件 由于在写博文之前我已经创建好文件了,…

SpringBoot+vue实现登录功能

目录 1. vue集成axios 1.1.新建request.js 1.2.新建login.js 2. Login.vue登录页面 2.1.导入login.js 2.2.登录逻辑 3. SpringBoot后台代码 3.1.pom.xm导入hutool工具包 3.2.新建UserPasswordDTO类

文件批量高效管理,批量将PDF类型文件移动到指定文件夹里,实现文件高效管理

文件的管理与整理成为了我们生活中不可或缺的一部分。面对堆积如山的PDF文件,你是否也曾感到手足无措、焦头烂额?现在,有了我们的批量文件管理工具,PDF文件的管理将变得前所未有的高效与简单! 首先,我们要…

拆单算法交易(Algorithmic Trading)

TWAP TWAP交易时间加权平均价格Time Weighted Average Price 模型,是把一个母单的数量平均地分配到一个交易时段上。该模型将交易时间进行均匀分割,并在每个分割节点上将拆分的订单进行提交。例如,可以将某个交易日的交易时间平均分为N 段&am…

compose调用系统分享功能分享图片文件

compose调用系统分享功能图片文件 简介UI界面提供给外部程序的文件访问权限创建FileProvider设置共享文件夹 通用分享工具虚拟机验证结果参考 本系列用于新人安卓基础入门学习笔记,有任何不同的见解欢迎留言 运行环境 jdk17 andriod 34 compose material3 简介 本案…

JavaEE_操作系统之进程(计算机体系,,指令,进程的概念、组成、特性、PCB)

一、冯诺依曼体系(Von Neumann Architecture) 现代的计算机, 大多遵守冯诺依曼体系结构 CPU 中央处理器: 进行算术运算和逻辑判断.存储器: 分为外存和内存, 用于存储数据(使用二进制方式存储)输入设备: 用户给计算机发号施令的设备.输出设备: 计算机个…

Python----列表删除

第一题: 描述 牛牛在各大互联网公司投入了简历,公司的名字通过字符串的形式在一行中输入,请用列表记录。现在牛牛已经确定了第一所公司的HR表露了不录用他的态度,请你使用del函数帮助牛牛从列表中删除第一个元素,然后输出列表。…

Spring-MVC从入门到精通

参数通过网页贯穿技术三层控制第二版 目录(单击可跳转对应目录) 1.SPRINGMVC是什么......................................................... 1 1.1初步认识SPRINGMVC.................................................. 1 1.2框架原理讲解.........…

学习java的static

1.static是什么,用来做什么? static-静态,可以修饰成员变量和成员方法。 2.成员变量按照有无static修饰,分为两种 类变量:有static修饰,属于类,在计算机中,会被类的全部对象所共享…

基于php+mysql+html超市商品管理系统(含论文)

博主介绍: 大家好,本人精通Java、Python、Php、C#、C、C编程语言,同时也熟练掌握微信小程序、Android等技术,能够为大家提供全方位的技术支持和交流。 我有丰富的成品Java、Python、C#毕设项目经验,能够为学生提供各类…

【数据结构-之八大排序(下),冒泡排序,快速排序,挖坑法,归并排序】

🌈个人主页:努力学编程’ ⛅个人推荐:基于java提供的ArrayList实现的扑克牌游戏 |C贪吃蛇详解 ⚡学好数据结构,刷题刻不容缓:点击一起刷题 🌙心灵鸡汤:总有人要赢,为什么不能是我呢 …

eve 导入linux

mkdir /opt/unetlab/addons/qemu/linux-centos7 cd /opt/unetlab/addons/qemu/linux-centos7 上传hda.qcow2 /opt/unetlab/wrappers/unl_wrapper -a fixpermissions Linux images - (eve-ng.net) Due to very high demand of this section and problems with how to crea…

【车载开发系列】MCAL基本概念

【车载开发系列】MCAL基本概念 【车载开发系列】MCAL基本概念 【车载开发系列】MCAL基本概念一. BSW与MCAL1)BSW-服务层2)BSW-ECU抽象层3)MCAL驱动层 二. MCAL基本概念三. MCAL组成1)PORT2)DIO3)ADC4&#…

阿里云开源大模型开发环境搭建

ModelScope是阿里云通义千问开源的大模型开发者社区,本文主要描述AI大模型开发环境的搭建。 如上所示,安装ModelScope大模型基础库开发框架的命令行参数,使用清华大学提供的镜像地址 如上所示,在JetBrains PyCharm的项目工程终端控…