【问题标题】:Set the current directory when running a SimpleHTTPServer运行 SimpleHTTPServer 时设置当前目录
【发布时间】:2010-03-18 11:04:22
【问题描述】:

有什么方法可以设置你想要启动 SimpleHTTPServer 或 BaseHTTPServer 的目录吗?

【问题讨论】:

    标签: python


    【解决方案1】:

    如果您直接从命令行使用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 中

    【讨论】:

    • 不,我在应用程序内部使用它。
    • @Ubersoldat:那么答案是一样的:使用 shell 设置当前工作目录。或者使用os.setcwd()——是一样的。
    • @S.Lott os.setcwd 不存在,但 os.chdir(path) 完成了这项工作。感谢两者。
    • @Ubersoldat:抱歉——我是凭记忆做到的。希望我可以编辑评论。
    • popd 永远不会被执行,因为 SimpleHTTPServer 永远不会返回。
    【解决方案2】:

    你可以为此创建一个脚本(比如microserver.sh),然后把它放进去

    #!/bin/bash
    
    pushd /your/directory/
    python -m SimpleHTTPServer 8000 &> /dev/null &
    popd
    

    然后,更改权限:

    chmod +x microserver.sh
    

    并执行它:

    ./microserver.sh
    

    这将避免将消息打印到控制台并将进程发送到后台,因此您可以继续使用控制台做其他事情。

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

    . ./microserver.sh
    
    

    【讨论】:

      【解决方案3】:

      在 Linux 上更改目录:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-05-25
        • 2019-09-20
        • 1970-01-01
        • 1970-01-01
        • 2014-07-11
        • 1970-01-01
        • 1970-01-01
        • 2016-01-03
        相关资源
        最近更新 更多