使用 python 在终端中更改目录

Change directory in terminal using 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 并更改目录。

import os
os.system('cd /home/name/projects/python')

如果您希望即使在程序退出后仍保留目录更改。 您可以使用 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")

对于您评论中提出的需求"I use this directory frequently and instead of doind cd <path> every time I open the terminal, I just write ./progname and it changes the directory"
我建议使用 bash 别名来更改目录:

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

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

bash:~$ mycd

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

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

步骤:

  1. 将此输入您的 .bash_profile。你可以用pico打开这个文件。
pico ~/.bash_profile
  1. 然后创建一个快捷方式(称为别名),你可以做任何你想做的短语。
alias cdd="cd ~/frequent/my-directory"
  1. 然后获取您的 .bash_profile 文件。
source ~/.bash_profile

现在,您只需 运行 您前面提到的快捷方式,这会切换您的目录,减少很多击键!

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

来源: