Python 运行SimpleHTTPServer时设置当前目录

Python 运行SimpleHTTPServer时设置当前目录,python,Python,有没有办法设置要在其中启动SimpleHTTPServer或BaseHTTPServer的目录?如果直接从命令行使用SimpleHTTPServer,只需使用shell功能即可: pushd /path/you/want/to/serve; python -m SimpleHTTPServer; popd 在Python 3中,您必须使用: pushd /path/you/want/to/serve; python -m http.server; popd SimpleHTTPServer模

有没有办法设置要在其中启动SimpleHTTPServer或BaseHTTPServer的目录?

如果直接从命令行使用
SimpleHTTPServer
,只需使用shell功能即可:

pushd /path/you/want/to/serve; python -m SimpleHTTPServer; popd
在Python 3中,您必须使用:

pushd /path/you/want/to/serve; python -m http.server; popd
SimpleHTTPServer模块已合并到Python 3.0中的http.server中


在Linux上执行此操作而不更改目录:

bash -c "cd /your/path; python -m SimpleHTTPServer"

您可以为此创建一个脚本(比如
microserver.sh
),并将其放入其中

#!/bin/bash

pushd /your/directory/
python -m SimpleHTTPServer 8000 &> /dev/null &
popd
然后,更改权限:

chmod +x microserver.sh
并执行它:

./microserver.sh
这将避免将消息打印到控制台并将进程发送到后台,因此您可以继续使用控制台进行其他操作

此外,还可以从其他脚本调用它,例如,可以将其添加到
~/.bashrc
以在启动用户会话时启动服务器。只需在
.bashrc

. ./microserver.sh


不,我是从应用程序内部使用它。@Ubersoldat:那么答案是一样的:使用shell设置当前工作目录。或者使用
os.setcwd()
——这是一样的。@s.Lott os.setcwd不存在,但是os.chdir(path)完成了这项工作。谢谢你们两个。@Ubersoldat:对不起,我是凭记忆做的。但愿我能编辑注释。popd永远不会执行,因为SimpleHTTPServer永远不会返回。