【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 模块时要注意跨平台性,某些方法在不同操作系统上可能表现不一样。
  • 在对文件和目录进行操作时,务必小心,避免意外删除或修改重要文件。
  • 对于需要递归操作的方法(如删除目录),务必小心,避免意外删除重要文件或目录。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

用龙梦迷你电脑福珑2.0做web服务器

用龙梦迷你电脑福珑2.0上做web服务器是可行的。已将一个网站源码放到该电脑,在局域网里可以访问网站网页。另外通过在同一局域网内的一台windows10电脑上安装花生壳软件,也可以在外网访问该内网服务器网站网页。该电脑的操作系统属于LAMP。在该电脑上安装…

【python】python标准化考试系统[单项选择题 简易版](源码)【独一无二】

👉博__主👈:米码收割机 👉技__能👈:C/Python语言 👉公众号👈:测试开发自动化【获取源码商业合作】 👉荣__誉👈:阿里云博客专家博主、5…

docker挂载数据卷-以nginx为例

目录 一、什么是数据卷 二、数据卷的作用 三、如何挂载数据卷 1、创建nginx容器挂载数据卷 2、查看数据卷 3、查看数据卷详情 4、尝试在宿主机修改数据卷 5、查看容器内对应的数据卷目录 6、 访问nginx查看效果 ​​​​​​​一、什么是数据卷 挂载数据卷本质上就是实…

基于springboot实现公司日常考勤系统项目【项目源码+论文说明】

基于springboot实现公司日常考勤系统演示 摘要 目前社会当中主要特征就是对于信息的传播比较快和信息内容的安全问题,原本进行办公的类型都耗费了很多的资源、传播的速度也是相对较慢、准确性不高等许多的不足。这个系统就是运用计算机软件来完成对于企业当中出勤率…

Unity3D初级实战项目之方块跑酷

目录 初始化项目开发环境初始化项目屏幕自适应 游戏UI界面元素布局开始界面UI角色选择(商城)界面UI游戏界面UI 地图生成算法之菱形布局Resources资源加载代码生成地图菱形布局 地图生成算法之墙壁边界菱形地图双排布局地图瓷砖颜色美化墙壁边界生成 地图…

git提交错了?别慌,直接删除提交记录

为什么要删除提交历史 前几天产品提了个很扯淡的需求,我在代码了进行了吐槽.... 要命的是我不下心进行了代码提交: 我们的远程仓库大家都能看见的 这要是被其他人发现就惨了!当务之急,我必须立刻马上删除这一条提交记录&#xff…

菜鸡学习netty源码(一)——ServerBootStrap启动

1.概述 对于初学者而然,写一个netty本地进行测试的Server端和Client端,我们最先接触到的类就是ServerBootstrap和Bootstrap。这两个类都有一个公共的父类就是AbstractBootstrap. 那既然 ServerBootstrap和Bootstrap都有一个公共的分类,那就证明它们两个肯定有很多公共的职…

EMP.DLL是什么东西?游戏提示EMP.DLL文件缺失怎么解决

emp.dll文件是Windows操作系统中的一种动态链接库文件,它被设计为可以被多个程序共享使用的模块化文件。这种设计旨在提高系统效率,减少内存消耗,并简化软件的维护和更新。DLL文件通常包含了一系列相关的函数和变量,这些函数和变量…

全景剖析阿里云容器网络数据链路(七):Terway DataPath V2(Terway≥1.8.0)

作者:余凯 前言 近几年,企业基础设施云原生化的趋势越来越强烈,从最开始的IaaS化到现在的微服务化,客户的颗粒度精细化和可观测性的需求更加强烈。容器网络为了满足客户更高性能和更高的密度,也一直在高速的发展和演…

qt学习篇---界面按键关联(信号和槽)

目录 1.qt基础 2.做一个界面 创建project UI界面设计 信号和槽 1.控件改名字 2.什么是信号和槽 3.怎么关联信号和槽 自动关联 手动关联 1.qt基础 qt可移植性强,不久会用到MCU。很有意义学习 2.做一个界面 创建project 不要中文路径 选择QWidget .pro文件…

ASP.NET实验室预约系统的设计

摘 要 实验室预约系统的设计主要是基于B/S模型,在Windows系统下,运用ASP.NET平台和SQLServer2000数据库实现实验室预约功能。该设计主要实现了实验室的预约和管理功能。预约功能包括老师对实验室信息、实验项目和实验预约情况的查询以及对实验室的预约…

LeetCode 69—— x 的平方根

阅读目录 1. 题目2. 解题思路一3. 代码实现一4. 解题思路二5. 代码实现二 1. 题目 2. 解题思路一 二分查找法,对于整数 i ∈ [ 0 , x ] i \in [0,x] i∈[0,x],我们判断 i 2 i^2 i2 和 x x x 的关系,然后找到最后一个平方小于等于 x x x …

向量语义学

书籍:Vector Semantics 作者:Andrs Kornai 出版:Springer Singapore 书籍下载-《向量语义学》本书通过提出一个以线性多面体术语表达的形式理论来弥合这一差距,该理论将字向量和概念结构进行了概括,将每个词典定义视…

45. UE5 RPG 使用元属性(Meta Attributes)以及使用Set by Caller修改伤害

在RPG游戏中,我们是不会直接修改生命值的属性,是因为在修改角色属性时,需要获取角色的属性并进行复杂的计算,所以,我们正常情况下使用元属性(Meta Attributes)作为计算的中间的媒。在服务器上先…

前端-React项目初始化

大家好我是苏麟 , 今天聊聊前端依赖 Ant Desgin Pro 快速初始化项目 . Ant Desgin Pro 官网 : 开始使用 - Ant Design Pro 初始化项目 找到文档->快速上手 脚手架命令 : # 使用 npm npm i ant-design/pro-cli -g创建项目命令 : pro create 项目名称 选择简单还是全量 : …

Python | Leetcode Python题解之第64题最小路径和

题目: 题解: class Solution:def minPathSum(self, grid: List[List[int]]) -> int:if not grid or not grid[0]:return 0rows, columns len(grid), len(grid[0])dp [[0] * columns for _ in range(rows)]dp[0][0] grid[0][0]for i in range(1, r…

五大开放式耳机推荐,选对耳机让运动更带感!

看似精彩的户外运动经历背后,其实是枯燥的体能运动和训练,以及独自长途和长时间旅行伴随的孤独感,而排解这些不良情绪的最佳方式就是音乐。如果你希望在运动、舒适、安全和音质之间获得一个最佳平衡,那相比入耳式耳机,…

71.网络游戏逆向分析与漏洞攻防-角色与怪物信息的更新-分析并利用角色与怪物创建的数据包

免责声明:内容仅供学习参考,请合法利用知识,禁止进行违法犯罪活动! 如果看不懂、不知道现在做的什么,那就跟着做完看效果 现在的代码都是依据数据包来写的,如果看不懂代码,就说明没看懂数据包…

『项目整理』易CAR通项目说明文档-我的第一款APP

『项目整理』易CAR通项目说明文档-我的第一款APP 项目介绍功能介绍技术栈介绍实现效果如何运行备注 项目介绍 易CAR通项目是我的第一个Android项目。是一款结合了AR技术的模仿懂车帝的看车软件。因为是初学,所示实现的效果差强人意,很多的功能界面只实现…

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

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