首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在脚本中切换目录后如何返回脚本目录?

在脚本中切换目录后,可以使用以下方法返回脚本目录:

  1. 使用os模块和sys模块结合的方式:
代码语言:txt
复制
import os
import sys

script_dir = os.path.dirname(os.path.abspath(sys.argv[0]))
os.chdir('/path/to/new/directory')  # 切换目录
# 执行其他操作
os.chdir(script_dir)  # 返回脚本目录

这种方法通过os.path.abspath(sys.argv[0])获取脚本的绝对路径,然后使用os.path.dirname()获取脚本所在目录的路径,保存到script_dir变量中。在切换目录后,通过os.chdir(script_dir)返回脚本目录。

  1. 使用os模块和file变量的方式:
代码语言:txt
复制
import os

script_dir = os.path.dirname(os.path.abspath(__file__))
os.chdir('/path/to/new/directory')  # 切换目录
# 执行其他操作
os.chdir(script_dir)  # 返回脚本目录

这种方法通过os.path.abspath(__file__)获取当前脚本的绝对路径,然后使用os.path.dirname()获取脚本所在目录的路径,保存到script_dir变量中。在切换目录后,通过os.chdir(script_dir)返回脚本目录。

  1. 使用os模块和inspect模块的方式:
代码语言:txt
复制
import os
import inspect

script_dir = os.path.dirname(os.path.abspath(inspect.getfile(inspect.currentframe())))
os.chdir('/path/to/new/directory')  # 切换目录
# 执行其他操作
os.chdir(script_dir)  # 返回脚本目录

这种方法通过inspect.getfile(inspect.currentframe())获取当前脚本的文件名,然后使用os.path.abspath()获取脚本的绝对路径,再使用os.path.dirname()获取脚本所在目录的路径,保存到script_dir变量中。在切换目录后,通过os.chdir(script_dir)返回脚本目录。

以上三种方法都可以在切换目录后,通过os.chdir(script_dir)返回脚本目录,方便后续操作。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • 如何清理Sqoop脚本产生的临时编译目录

    ,执行的抽数脚本会在/tmp/sqoop-${user}/compile目录下产生临时的编译文件,脚本执行成功这些生成的临时文件并不会自动的清除。...2.搜索栏,搜索“sqoop-env.sh”,配置项增加如下脚本 #清除一天前当前用户临时编译目录 expires=1d echo echo SQOOP COMPILE DIR DIRECTORY...5.总结 ---- 1.Sqoop没有自动清除/tmp/sqoop-${user}/compile下的编译目录3.0.0版本才被修改,CDH的Sqoop也并未修复该问题。...2.本文Fayson通过Sqoop的运行环境添加清理脚本,来实现编译目录的清理。...3.默认情况是不需要安装“Sqoop 1 Client”服务的,因为需要借助于CM统一的Sqoop的运行环境添加脚本

    2.2K20

    如何从Bash脚本本身获得其所在的目录

    问: 如何从Bash脚本本身获得其所在的目录? 我想使用Bash脚本作为另一个应用程序的启动器。我想把工作目录改为Bash脚本所在的目录,以便我可以对该目录下的文件进行操作,像这样: $ ....但是以相对路径的方式去执行脚本时,获取的目录信息是相对路径,不能满足其他需要获取绝对路径的场景。 如果要获取绝对路径,可以使用如下方法: #!...测试结果如下: 另外,可以根据第一种方法结合使用 realpath 命令,也可获取脚本所在目录的绝对路径: #!...编程$(cmd) 和 `cmd` 之间有什么区别 为什么我不能在脚本中使用"cd"来更改目录 为什么可执行文件或脚本名称之前需要..../(点-斜杠),以便在bash运行它 shell脚本对编码和行尾符敏感吗

    33720

    如何使用Shell脚本判断HDFS文件目录是否存在

    ---- 1 文档编写目的 本文主要讲述如何使用Shell脚本判断HDFS文件或目录是否存在,算是一个小技巧吧,这几天做PoC的时候感觉还挺有用的。...Shell脚本测试 3.1 测试路径是否存在 3.2 测试目录是否存在 3.3 测试文件是否存在 4..../etest.sh /user/wdtest”命令,运行测试脚本,验证输出结果 ? 3.2 测试目录是否存在 1、编写测试脚本如下: #!...或者hadoop fs -test -d -f URI这种命令; 2、hadoop fs -test -[defsz] URI 返回值是不输出的,需要通过“$?”...这个特殊变量获取返回值; 3、-s和-z命令我测试过,但觉得不怎么常用,所以没在文章中讲述,有兴趣可以自己测一下,比较简单,更换一下脚本参数即可; 4、判断HDFS文件目录是否存在后,可以执行比如创建、

    5.6K20

    原 shell脚本的逻辑判断,文件目录

    shell脚本的逻辑判断: 逻辑判断表达式:if [ $a -gt $b ]; if [ $a -lt 5 ]; if [ $b -eq 10 ]等 -gt (>); -lt(=);...a=1 那么 a 就不>3 所以就不满足条件,就是else 第三种格式:if …; then … ;elif …; then …; else …; fi 文件目录属性判断: 【 if file 】 判断是否是普通文件...,切存在 【-d file 】判断是否是目录,且存在 【 -e file 】判断文件或目录是否存在 【 -r file 】判断文件是否可读 可写 可执行 = 类似 判断的不同写法:【 -f $f 】||...: 在网卡系统服务脚本,如,/etc/init.d/iptables中就用到了case case,可以条件中使用“|”,表示或的意思 输入一个同学的分数,判断成绩是否及格,优秀。...会返回1值,表示程序退出是因为出错了,和查看上一条命令执行有无错误的时候是一样的。

    1.4K50

    shell脚本的逻辑判断,文件目录属性判断,if特殊用法,case语句

    笔记内容: 20.5 shell脚本的逻辑判断 20.6 文件目录属性判断 20.7 if特殊用法 20.8/20.9 case判断 笔记日期:2017-11-22 20.5 shell脚本的逻辑判断...格式3:if …; then … ;elif …; then …; else …; fi 第三格式就是多了个判断而已,if语句中,只要满足其中一个判断条件执行完语句块里的代码就会结束,下面elif...为了演示if语句中满足了其中一个elif的判断条件,下面的语句就不再执行,我们可以脚本中加多一个elif语句: 代码示例: ? 运行结果: ?...关于shell的逻辑运算符: &&  与 ||  或 20.6 文件目录属性判断 ? shell中经常会和文件和目录打交道,所以这个时候对文件或目录的判断就比较重要了。...所以在这一节中介绍如何判断文件、目录的属性: 1. [ -f file ]判断是否是普通文件,且存在,代码示例: ? 判断一个文件是否存在,不存在则创建此文件,存在则打印此变量。

    3.6K30

    【Android Gradle 插件】组件化的 Gradle 构建脚本实现 ② ( 组件化基本实现 | Project 相关目录 | 定义组件切换标志位 | 切换插件导入 | 切换设置应用 ID )

    文章目录 一、Project 可获取的目录 二、定义模块化与组件化切换标志位 三、切换插件导入 四、切换设置应用 ID 在上一篇博客 【Android Gradle 插件】组件化的 Gradle...构建脚本实现 ① ( 组件化简介 | 创建组件化应用 | 依赖库模块 / 应用模块 切换设置 ) 最后提到了 Gradle 构建脚本 , 需要实现 依赖库模块 / 应用模块 切换设置 , 主要涉及如下两个方面...*/ File getRootDir(); 二、定义模块化与组件化切换标志位 ---- 工程根目录 , 创建 common.gradle 构建脚本 , 用于存放一些 扩展变量 ; 定义...引入上述 common.gradle 构建脚本即可 ; 三、切换插件导入 ---- 模块下的 build.gradle 构建脚本 , 默认的 " Phone & Tablet " 类型的 Module...等同于将该构建脚本原封不动拷贝到此处 ; ${rootProject.rootDir} 的作用是获取工程根目录 , common.gradle 构建脚本就是定义目录 ; 然后 , 根据 isModuleDebug

    1.1K20

    Python3 将源目录的图片根据设定最长边参数保存到目标目录脚本(Image 的使用)

    关键问题是算法,例如,我要求图片最长边为 400px,那么理想情况下,处理的状态应该是: 源图片尺寸为 800*600,则缩放结果是 400*300 源图片尺寸为 600*800,则缩放结果是 300...错误退出函数 def errMsn(msn): print('\033[31mError:\033[0m ' + msn) parser.print_usage() exit() # 目录中找到所有图片并输出为数组...img) simg_w = simg.size[0] simg_h = simg.size[1] # 如果原图片宽高均小于设置尺寸,则将原图直接复制到目标目录...只设置了最长边参数以及源目录 ? 脚本会提示,不设置目标目录则会覆盖源文件,直接回车,或者输入 Y 或者 y 确认,输入 N 或者 n 则退出程序。 设定了目标目录,但目标目录不存在 ?...脚本会提示目标目录不存在,直接回车,或者输入 Y 或 y 则会创建这个目录,输入 N 或者 n 则退出程序。 正常以及报错状态 ?

    1.2K30

    【Android Gradle 插件】组件化的 Gradle 构建脚本实现 ③ ( Gradle 构建脚本实现 AndroidManifest.xml 清单文件切换设置 )

    二、 Gradle 构建脚本实现 AndroidManifest.xml 清单文件切换设置 在上一篇博客 【Android Gradle 插件】组件化的 Gradle 构建脚本实现 ① ( 组件化简介...| 创建组件化应用 | 依赖库模块 / 应用模块 切换设置 ) 最后提到了 Gradle 构建脚本 , 需要实现 依赖库模块 / 应用模块 切换设置 , 主要涉及如下两个方面 : build.gradle...构建脚本 切换设置 , 切换 应用 / 依赖库 ; AndroidManifest.xml 清单文件 切换设置 , 设置 启动 Activity 项 ; 【Android Gradle 插件】组件化的...Gradle 构建脚本实现 ② ( 组件化基本实现 | Project 相关目录 | 定义组件切换标志位 | 切换插件导入 | 切换设置应用 ID ) 博客实现了 模块化 与 组件化 的切换 ;...Gradle 构建脚本实现 AndroidManifest.xml 清单文件切换设置 ---- 模块下 的 build.gradle 构建脚本 的 " android#sourceSets#main

    2.1K50

    【Android 逆向】修改 Android 系统文件 ( Android 逆向需要经常修改的文件和目录 | root 的设备获取 目录的 rw 权限注意事项 )

    文章目录 一、Android 逆向需要经常修改的文件和目录 二、 root 的设备获取 / 目录的 rw 权限注意事项 1、不要随意执行 wipe 命令 2、不要随意执行 rm 命令 一、Android...可以放在 /sbin/ , /system/bin/ , /system/xbin/ 等目录 , 这些目录的可执行程序自动存放到环境变量 ; 动态库存放目录 : Android 中使用的系统 so...B , 将原有的 so 文件重命名为 C , A 动态库 调用 C 动态库的函数 , 这样就相当于调用时加了一层拦截 , 可以在此处获取各种参数 ; 配置文件目录 : Android 的配置文件一般都在.../system/etc/ 目录 ; 二、 root 的设备获取 / 目录的 rw 权限注意事项 ---- 1、不要随意执行 wipe 命令 wipe 命令不要轻易执行 ; 执行 wipe system...Android 系统的所有设置都删除 , 还原到出厂设置 ; 执行 wipe data 命令 , 会清除当前所有的用户安装的应用及文件都删除 ; 执行 wipe all 命令 , 是上述两个命令之和 , 类似于目录执行

    1.7K10

    Python3 初学实践案例(12)将源目录的图片根据设定最长边参数保存到目标目录脚本(Image 的使用)

    Python3 初学实践案例(12)将源目录的图片根据设定最长边参数保存到目标目录脚本(Image 的使用) 如果我们给客户制作网站,客户会发送过来一堆的图片,这些图片一般都是通过手机或者数码相机拍摄的...错误退出函数 def errMsn(msn): print('\033[31mError:\033[0m ' + msn) parser.print_usage() exit() # 目录中找到所有图片并输出为数组...img) simg_w = simg.size[0] simg_h = simg.size[1] # 如果原图片宽高均小于设置尺寸,则将原图直接复制到目标目录...脚本会提示,不设置目标目录则会覆盖源文件,直接回车,或者输入 Y 或者 y 确认,输入 N 或者 n 则退出程序。...设定了目标目录,但目标目录不存在 脚本会提示目标目录不存在,直接回车,或者输入 Y 或 y 则会创建这个目录,输入 N 或者 n 则退出程序。

    70010

    如何使用find和locate 命令Linux 查找文件和目录

    使用 find 命令 Linux 查找文件和目录 按名称查找文件 按部分名称查找文件 按大小查找文件 使用时间戳查找文件 按所有者查找文件 按权限查找文件 按名称查找目录 使用 locate 命令...1使用 find 命令 Linux 查找文件和目录 Linux find 命令是一个强大的工具,它使系统管理员能够根据模糊的搜索条件定位和管理文件和目录,它支持按文件、文件夹、名称、创建日期、修改日期...例如,要在服务器的/home文件夹查找用户wljslmz拥有的文件: find /home -type f -user wljslmz www-data/home目录查找属于某个组的所有文件:...按名称查找目录 到目前为止,我们看到的所有示例都返回文件,但是,如果您只需要搜索目录,则可以使用该 -type d 参数。...查找/opt目录下名字为app的文件夹: find /opt -type d -name app 3使用 locate 命令 Linux 查找文件和目录 虽然 find 是Linux 中最流行和最强大的用于文件搜索的命令行实用程序之一

    5.8K10

    如何使用find和locate 命令Linux 查找文件和目录

    使用 find 命令 Linux 查找文件和目录 Linux find 命令是一个强大的工具,它使系统管理员能够根据模糊的搜索条件定位和管理文件和目录,它支持按文件、文件夹、名称、创建日期、修改日期...例如,要搜索wljslmz.ppt /home 目录命名 的 文件,您可以使用以下命令: find /home -type f -name wljslmz.ppt Linux 对文件名区分大小写,因此如果您要查找名为...例如,要在服务器的/home文件夹查找用户wljslmz拥有的文件: find /home -type f -user wljslmz www-data/home目录查找属于某个组的所有文件: find...按名称查找目录 到目前为止,我们看到的所有示例都返回文件,但是,如果您只需要搜索目录,则可以使用该 -type d 参数。...查找/opt目录下名字为app的文件夹: find /opt -type d -name app 使用 locate 命令 Linux 查找文件和目录 虽然 find 是Linux 中最流行和最强大的用于文件搜索的命令行实用程序之一

    6.9K00

    Linux:如何脚本开发实现程序在用户退出仍保持运行

    Linux环境下进行脚本开发时,常常需要自主管理进程,确保某些关键程序在用户退出仍能继续运行,而不依赖于systemd这样的进程管理工具。本文将探讨如何通过其他方法实现这一目标。...它的主要优点包括: 会话管理:tmux 可以创建、分离和重新连接会话,使得程序可以不同的会话独立运行而不会因为终端关闭而中断。...窗口分割:tmux 允许一个终端窗口中分割成多个窗格,每个窗格都可以运行独立的终端会话,这对于并行处理任务非常有用。 脚本友好:tmux 提供丰富的命令行选项,可以方便地脚本中使用。...多窗口支持:screen 也支持一个终端窗口中创建多个窗口,并在它们之间切换。 示例:使用screen运行程序并分离会话 sh screen -dmS my_session ....此外,tmux 的窗口分割和脚本友好性,使得它在现代开发和运维场景更加实用。学习和掌握tmux将为您的日常工作和长期任务管理提供极大的便利。

    38410
    领券