使用python在终端中更改目录

新手上路,请多包涵

我正在编写一个简单的脚本来将当前工作目录更改为其他目录。以下脚本在程序终止之前工作正常,之后我回到我的主目录。

 #!/usr/bin/python

import os

if __name__ == '__main__':
    os.chdir("/home/name/projects/python")
    os.system("pwd")
    print 'dir changed'

输出是:

 bash:~$ python chdir.py
/home/name/projects/python
dir changed
bash:~$ pwd
/home/name

我希望目录更改在程序退出后仍然存在。任何想法如何去做?

编辑:我真正想做的是:我经常使用这个目录,而不是做 cd <path> 每次我打开终端,我只写 ./progname 它会更改目录。

原文由 Krishh 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 879
2 个回答

如果您希望即使在程序退出后仍保留目录更改。您可以使用 os.system("/bin/bash") 结束 python 脚本,这将使您进入新目录内的 bash shell。

 #!/usr/bin/python
import os
if __name__ == '__main__':
    os.chdir("/home/name/projects/python")
    os.system("pwd")
    os.system("/bin/bash")

对于您评论中提出的需求“我经常使用此目录而不是 doind cd <path> 每次我打开终端时,我只写 ./progname 它会更改目录”

我建议使用将更改目录的 bash 别名:

 bash:~$ alias mycd='cd /home/name/projects/python'

并在 bash shell 中使用此别名以更改目录:

 bash:~$ mycd

您可以将此别名添加到您的 .bashrc - 这将允许您每次都使用此别名。

原文由 Yaron 发布,翻译遵循 CC BY-SA 4.0 许可协议

如果有人想在没有 python 的情况下执行此操作 - 这最简单地使用 .bash_profile 文件完成。

脚步:

  1. 将其输入到您的 .bash_profile 中。你可以用 pico 打开这个文件。

    pico ~/.bash_profile
    
  2. 然后创建一个快捷方式(称为别名),你可以做任何你想做的短语。

    alias cdd="cd ~/frequent/my-directory"
    
  3. 然后获取您的 .bash_profile 文件。

    source ~/.bash_profile
    

现在,您只需运行前面提到的快捷方式,这会切换您的目录,而且击键次数要少得多!

 Macbook-Spen:~ spen$ cdd
Macbook-Spen:my-directory spen$

资料来源:

原文由 spen.smith 发布,翻译遵循 CC BY-SA 4.0 许可协议

推荐问题