如何在 Python 中获取和更改当前工作目录

2023-11-02

在 Python 中处理目录中的文件时,使用绝对路径始终是一个好主意。但是,如果您使用相对路径,则需要了解当前工作目录的概念以及如何查找或更改当前工作目录。绝对路径指定从根目录开始的文件或目录位置,而相对路径从当前工作目录开始。

当您运行 Python 脚本时,当前工作目录将设置为执行脚本的目录。

os python 模块提供了一种与操作系统交互的可移植方式。该模块是标准 Python 库的一部分,包含查找和更改当前工作目录的方法。

在Python中获取当前工作目录#

The getcwd()Python 中 os 模块的方法返回一个字符串,其中包含当前工作目录的绝对路径。返回的字符串不包含尾部斜杠字符。

os.getcwd()

要使用 os 模块方法,您必须在文件顶部导入该模块。

下面是一个显示如何打印当前工作目录的示例:

# Import the os module
import os

# Get the current working directory
cwd = os.getcwd()

# Print the current working directory
print("Current working directory: {0}".format(cwd))

# Print the type of the returned object
print("os.getcwd() returns an object of type: {0}".format(type(cwd)))

输出将如下所示:

Current working directory: /home/linuxize/Desktop
os.getcwd() returns an object of type: <class 'str'>
如果你想找到脚本所在的目录,使用os.path.realpath(__file__)。它将返回一个包含正在运行的脚本的绝对路径的字符串。

在 Python 中更改当前工作目录#

要更改 Python 中的当前工作目录,请使用chdir() method.

os.getcwd(path)

该方法接受一个参数,即要更改到的目录的路径。这path论证可以是绝对的或相对的。

这是一个例子:

# Import the os module
import os

# Print the current working directory
print("Current working directory: {0}".format(os.getcwd()))

# Change the current working directory
os.chdir('/tmp')

# Print the current working directory
print("Current working directory: {0}".format(os.getcwd()))

输出将如下所示:

Current working directory: /home/linuxize/Desktop
Current working directory: /tmp

提供给chdir()方法必须是目录;否则NotADirectoryError引发异常。如果指定的目录不存在,则FileNotFoundError引发异常。如果运行脚本的用户没有必要的权限,则会出现PermissionError引发异常。

# Import the os module
import os

path = '/var/www'

try:
    os.chdir(path)
    print("Current working directory: {0}".format(os.getcwd()))
except FileNotFoundError:
    print("Directory: {0} does not exist".format(path))
except NotADirectoryError:
    print("{0} is not a directory".format(path))
except PermissionError:
    print("You do not have permissions to change to {0}".format(path))

结论#

要在 Python 中查找当前工作目录,请使用os.getcwd(),并要更改当前工作目录,请使用os.chdir(path).

如果您有任何问题或反馈,请随时发表评论。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Python 中获取和更改当前工作目录 的相关文章

随机推荐

  • 20个基本电路图讲解_记住这些规则,再看电路图就不会乱了!

    在我们进行电子DIY制作时 看图是难免的 但对于很多新手来说 刚开始似乎总有种很乱的感觉 走过来后我们才知道 当时只是没有了解这些规则 今天小编以电子电路图为主要示例进行总结一下 电路图走向 是指电路图中各部分电路 从最初的输入端到最终的输
  • 【数据结构】 二叉树面试题讲解->叁

    文章目录 引言 根据二叉树创建字符串 https leetcode cn problems construct string from binary tree submissions 题目描述 示例 示例一 示例二 思路解析 代码完整实现
  • Spring MVC的表单标签库详解

    表单标签库中包含了可以用在 JSP 页面中渲染 HTML 元素的标签 在 JSP 页面使用 Spring 表单标签库时 必须在 JSP 页面开头处声明 taglib 指令 指令代码如下 在表单标签库中有 form input passwor
  • Ueditor去掉图片之间的间隙

    问题 运营在后台配置商品信息的时候 复制京东上面的图片到ueditor富文本编辑器里面 两张图片中总是存在空白间隙 但查看html源码又很简单没有发现什么问题p标签之类的 而且硬着配置上去后 在uniapp打包的微信小程序里面查看商品详情一
  • cartographer 前端PoseExtrapolator及IMU预积分

    卡尔曼滤波器应用 用于单目标追踪的IMM模型 知乎 Cartographer前端的优化 基于IMU预积分的LIO实现 知乎 Cartographer PoseExtrapolator 位姿外推器 分析总结与优化思路 知乎 MCGA Make
  • 设计模式(五)适配器模式Adapter(结构型)

    设计模式 五 适配器模式Adapter 结构型 1 概述 接口的改变 是一个需要程序员们必须 虽然很不情愿 接受和处理的普遍问题 程序提供者们修改他们的代码 系统库被修正 各种程序语言以及相关库的发展和进化 例子1 iphone4 你即可以
  • 经典CNN模型介绍及Pytorch实现

    文章目录 前言 一 LeNet 1 LeNet介绍 2 LeNet核心代码 3 LeNet在MNIST上测试 二 AlexNet 1 AlexNet介绍 2 AlexNet核心代码 3 AlexNet在MNIST上测试 三 VGGNet 1
  • 如何在 Amazon Linux 上安装 NVM

    NVMNode Version Manager 是一个命令行实用程序 用于在基于 Linux 的系统上安装和管理多个 Node js 版本 借助 NVM 您可以在系统上安装任何特定的 Nodejs 版本并用于运行您的应用程序 本教程将帮助您
  • 使用 Prism.js 使用复制代码按钮创建代码块

    在本教程中 我们将学习如何使用 Prism js 通过复制代码按钮创建代码块 Prism js 是一个轻量级且可扩展的语法荧光笔 它使我们能够在网页上精美地格式化代码片段 添加复制代码按钮将增强用户体验 用户只需单击一下即可轻松将代码复制到
  • 在 NodeJS、ExpressJS 和 MySQL 中创建基本 CRUD API

    使用 ExpressJS 框架和 MySQL 数据库在 NodeJS 中创建基本的 CRUD 创建 读取 更新 删除 API 是一个简单的过程 在本教程中 我们将逐步介绍构建一个简单 API 所需的步骤 该 API 允许用户在数据库中创建
  • 如何避免 SSH 断管错误

    Secure Shell 或 SSH 是一种强大的协议 许多 IT 专业人员和网络管理员每天都使用它来建立与远程系统的安全连接 它旨在提供安全的远程登录和命令执行 但也存在一些问题 此类问题之一是 SSH 管道损坏错误 了解此错误的含义以及
  • Docker exec:在 Docker 容器中运行命令

    Docker 是一个流行的容器化平台 允许您在容器中打包 部署和运行应用程序 这 docker exec command 允许您在正在运行的 Docker 容器中运行命令 这对于调试 测试和管理容器非常有用 在本文中 我们将介绍如何使用 d
  • Windows 中哪个进程正在侦听端口

    如果您是系统管理员 您就会知道密切关注 Windows 系统上运行的进程有多么重要 有时 您可能需要找出哪个进程正在侦听特定端口 在本文中 我们将向您展示如何使用 CMD 和 PowerShell 来执行此操作 通过学习如何识别正在侦听端口
  • 如何安装和构建您的第一个 React Native 应用程序(快速入门)

    React 是 Facebook 维护的跨平台 JavaScript 库 它用于创建用户界面 使用 React Native 您可以轻松构建移动应用程序 React Native 提供应用程序的热重载 这样您就可以更快地构建您的应用程序 您
  • 如何在 Ubuntu 桌面上安装 NetBeans IDE 8.2 (PHP)

    NetBeans is the most popular IDE for development on Linux systems NetBeans editor provides many pre configured code temp
  • ChatGPT:AI语言模型的演变及其对社会的影响

    人工智能 AI 近年来已经取得了长足的进步 像这样的语言模型OpenAI 的 ChatGPT在自然语言处理和理解方面取得了长足的进步 本文将探讨 AI 语言模型的演变 重点关注 ChatGPT 其前身以及日益复杂的语言模型的社会影响 人工智
  • 如何在 Vim 中保存并退出

    VIM 是 Vi 改进版的缩写形式 它是一个免费的开源文本编辑器 可以安装在任何操作系统上 无论是 Windows 还是 Linux 操作系统 它可以在 CMD 命令行 模式以及 GUI 图形用户界面 模式下使用 它使用起来非常灵活和可靠
  • 如何在 Windows 上安装 Maven

    Apache Maven 是适用于任何软件项目的优秀构建工具 它可以帮助您管理项目代码及其构建过程 以便您的软件项目保持井井有条并保持其重点 Windows 并不是最受开发人员欢迎的操作系统 但企业和最终用户仍然广泛使用它 幸运的是 有多种
  • 如何在 Ubuntu 18.04 和 16.04 上使用 Nginx 安装多个 PHP 版本

    通常 网络托管管理器为每个 PHP 版本应用程序部署使用单独的服务器 这增加了托管成本 或者 您可以运行多个Docker多个 PHP 版本的容器 本教程帮助您在具有不同 PHP 版本的 Nginx Web 服务器上安装和配置两个 Virtu
  • 如何在 Python 中获取和更改当前工作目录

    在 Python 中处理目录中的文件时 使用绝对路径始终是一个好主意 但是 如果您使用相对路径 则需要了解当前工作目录的概念以及如何查找或更改当前工作目录 绝对路径指定从根目录开始的文件或目录位置 而相对路径从当前工作目录开始 当您运行 P