如何从 python 脚本更改当前目录?

2023-12-27

我正在尝试实现我自己的“cd”命令版本,该命令向用户提供可供选择的硬编码目录列表,并且用户必须输入与列表中的条目相对应的数字。该程序名为my_cd.py现在,应该有效地将用户“cd”到所选目录。其工作原理示例:

/some/directory
$ my_cd.py
1) ~
2) /bin/
3) /usr
Enter menu selection, or q to quit: 2

/bin
$

目前,我正在尝试使用“cd”os.chdir('dir')。然而,这不起作用,可能是因为my_cd.py在它自己的子进程中启动。我尝试将通话转至my_cd.py在名为的源 bash 脚本中my_cd.sh:

#! /bin/bash
function my_cd() {
    /path/to/my_cd.py
}

/some/directory
$ . my_cd.sh
$ my_cd
... shows list of dirs, but doesn't 'cd' in the interactive shell

关于如何让它发挥作用有什么想法吗?是否可以通过 python 脚本更改交互式 shell 的当前目录?


更改您的来源bash代码为:

#! /bin/bash
function my_cd() {
    cd `/path/to/my_cd.py`
}

和你的Python代码来完成所有的事情cosmetic输出(给用户的消息、菜单等)sys.stderr,并且最后代替os.chdir, just print (to sys.stdout) 目录应更改为的路径。

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

如何从 python 脚本更改当前目录? 的相关文章

随机推荐

  • 通过ajax将当前页面html发送回服务器

    在我的应用程序中 我通过 jquery ajax 将网页的 html 发送回服务器 因为我需要在服务器中存储此页面的副本 代码如下 document ready function var pcontent document body inn
  • 如何使用自定义文档根在 Apache 2.4 中显示目录索引

    我在 Ubuntu 13 10 中的 Apache 2 4 中遇到问题 我尝试将文档根目录更改为 home fandi public html 一切工作正常 但我尝试在 public html 中创建文件夹 但收到如下错误 Sat Jan
  • 这个 Coldfusion 查询 SQL 注入证明吗?

    通常 我在应用程序中使用整数 id 但对于这个开发 我正在文本字段 标签名称 上进行查找 我确实使用了 cfqueryparam 但考虑到它是一个文本字段 它是否容易受到 SQL 注入攻击 如果是这样 除了繁琐地搜索 SQL 命令的字符串之
  • 我可以使用layout_weight来定位RelativeLayout吗?

    我一整天都在努力让它发挥作用 我想我可以使用RelativeLayout android layout weight 0 3 将三个按钮放置在屏幕右侧 不居中 而是距顶部向下 30 这可能吗 如果可以我该怎么做 以下是我的 XML 其中显示
  • 允许的内存大小 php.ini

    我有一个 Symfony 4 应用程序 我上传文件有 2MB 限制 这个限制有效 在开发环境中一切正常 图像上传得很好 但在产品中 我总是收到相同的消息 Fatal error Allowed memory size of 13421772
  • 泛型函数类型中的通用量化

    正在阅读paper http lucacardelli name Papers OnUnderstanding A4 pdf关于编程语言中的类型和多态性 我想知道是否可以用 Scala 表达类型成员上类似的通用量化 论文中的示例 type
  • 如何使用 Postgres 和 Tomcat7 JDBC Pool 配置PreparedStatement 缓存?

    我将 Tomcat7 与 Postgres 9 1 结合使用 将 JPA 与 Hibernate 结合使用 并且我想配置准备好的语句池 我通过查看 postgres 查询日志看到的正常默认行为是看到许多 PARSE BIND 对同一查询执行
  • 在 NanoHTTPD 中检索 HTTP 正文

    如何检索 HTTPPOST实施时请求主体纳米HTTPD http nanohttpd coms serve method 我尝试过使用getInputStream 的方法IHTTPSession已经 但我总是得到一个SocketTimeou
  • 如何模拟cmd-shift-4截屏界面?

    我正在构建一个 OSX 应用程序 并希望使用与 cmd shift 4 UX IE 启动操作类似的界面来捕获屏幕的一部分 呈现一个鼠标光标 mouseDown 并拖动 mouseUp 捕获屏幕坐标 同时绘制半透明覆盖层以表示正在捕获的区域
  • 每 n 个添加类

    我有一个元素列表 我想用 3 种不同的方式设置它们的样式 我希望每个第三个列表项在整个列表中都具有相同的类 例如 li class A Some Content li li class B Some Content li li class
  • 具有特定范围的 angularjs 部分模板

    我想在主模板中包含一个部分模板 但在调用部分模板时具有特定的范围 例如 这是我的主模板 非常简化 实际模板更复杂 所以这里不能使用 ng iterate h1 title my item1 name is item1 name h1 div
  • 如何在 JBoss 中配置 ActiveMQ JCA 连接器以使用 XA 连接?

    在 JBoss 5 1 0 上 我使用 ds xml 标准 jboss DS 配置了数据源 PostgreSQL 8 3 11 它使用 XADataSource PGXA数据源 http jdbc postgresql org develo
  • 我正在尝试编写一段 Javascript 以定时间隔在两个视频之间切换 不要问 更糟糕的是 每个视频都必须从特定位置开始 大约十秒 再次强调 不要问 我通过使用 YUI 异步库来定期切换视频来了解基础知识 YUI use async que
  • 无法启动服务? (语音识别)

    我想在服务中使用 pocketsphinx 连续收听 hello 这个词 我得到了错误 这里是完整的堆栈跟踪 https gist github com anonymous d68e9ac7e5d98315a5a4 这是其中的一小部分 Un
  • 如何判断文档是否为模板?

    我试图确定文档是简单文档 doc docx docm 还是模板 dot dotx dotm 我知道有多种方法可以解决这个问题 例如检查文件扩展名 但我正在寻找最 安全 的一种 我目前的猜测是 Private Function isTempl
  • 错误是:没有名为 postgresql.base 的模块

    我正在尝试将 Django 应用程序迁移到 postgresql 但我无法让 Django 识别出实际安装了 postgres 我已经将它安装在我的计算机上 并且它在我的计算机上运行良好 但是当我尝试将其设置为我的默认值时settings
  • 领域从必需变量迁移到可空变量

    领域从必需变量迁移到可空变量 我有一个变量 它是我以前版本的领域中的必需字段 但对于较新的版本 我希望它不是必需的 而是可以为空的 我如何通过领域迁移来做到这一点 您可以检查示例迁移示例 https github com realm rea
  • Java 和 C++ 在对象创建方面的主要区别是什么?

    我正在准备 Java 考试 之前考试的问题之一是 Java 和 C 在对象创建方面的主要区别是什么 我想我知道对象创建的基础知识 例如如何调用构造函数 初始化块在 Java 中做什么 以及当一个类的构造函数调用另一个尚未构造的类的方法时会发
  • SSE:如果不为零则倒数

    如何使用 SSE 指令取浮点数的倒数 逆 但是仅适用于非零 values 背景如下 我想规范化向量数组 以便每个维度具有相同的平均值 在 C 中 可以将其编码为 float vectors num dim input data step 1
  • 如何从 python 脚本更改当前目录?

    我正在尝试实现我自己的 cd 命令版本 该命令向用户提供可供选择的硬编码目录列表 并且用户必须输入与列表中的条目相对应的数字 该程序名为my cd py现在 应该有效地将用户 cd 到所选目录 其工作原理示例 some directory