我正在编写一个简单的脚本来将当前的工作目录更改为其他目录。以下脚本可以正常运行,直到程序终止,然后我回到我的主目录。
#!/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
并更改目录。
答案 0 :(得分:10)
如果您希望在程序退出后仍保留目录更改。
您可以使用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")
对于评论中提出的需求“我经常使用此目录,而不是每次打开终端时都使用cd <path>
,我只需编写./progname
并更改目录”
我建议使用bash别名来改变目录:
bash:~$ alias mycd='cd /home/name/projects/python'
并在bash shell中使用此别名以更改目录:
bash:~$ mycd
您可以将此别名添加到.bashrc
- 这样您就可以每次都使用此别名。
答案 1 :(得分:0)
import os
os.system('cd /home/name/projects/python')
答案 2 :(得分:0)
好的,抱歉大喊大叫。
您应该只编辑routes.MapRoute(
name: "Browse",
url: "{controller}/Browse/{departmentId}",
// this does not compile, just want to explain what I want...
defaults: new { action = "Browse", new ComplexVM(departmentId) });
文件。真的很简单。触摸创建文件,然后打开功能将其打开。在您的终端中:
.bash_profile
这将打开“文本编辑”。这样创建快捷方式,我将其放在文件末尾:
touch ~/.bash_profile; open ~/.bash_profile
然后运行此命令以更新您的alias cdd="cd ~/frequent/my-directory"
文件。 (或者关闭并重新打开终端,如果您愿意的话。)
.bash_profile
现在,您只需运行上述快捷方式:
source ~/.bash_profile
这将切换目录,而击键次数更少!
Macbook-Spen:~ spen$ cdd
来源: