python cgi + 用于运行批处理命令的网络界面?

标签 python shell command-line cgi

我正在将通过命令行运行的 Python 脚本移植到 Python CGI,以便我可以使用 HTML 表单元素控制选项。如何访问命令的结果?

脚本当前运行这些命令:

  • svn更新
  • rsync 从其他本地文件夹复制图像
  • 重新编译 CSS
  • svn 提交 *循环这些命令十几次

    #!/usr/bin/python
    print 'Content-Type: text/plain'
    print
    print 'test...'
    os.system("svn update /Users/daverau/titles/or_mm_creating_website_3e")
    

如何访问此命令的控制台输出?有没有更好的方法来设置这种本地作业?

安全性不是问题,这是仅供我自己使用的本地 Mac 工具。

最佳答案

这两个好的答案向您指出了子流程模块。

还有一些围绕这个模块构建的包装器非常值得一看:

1) sh 模块(前 PBS)

[更新] 如果您无法使用 MS Windows,请使用 PBS,否则请使用其后继者 sh module .

使用 sh 模块:

from sh import ifconfig, ls
print(ifconfig("eth0"))
print(ls('-la'))

使用 PBS,来自自述文件 https://github.com/amoffat/pbs :

import pbs
print pbs.ifconfig("eth0")
print pbs.ls('-la')

2) 铅

详细信息请访问http://plumbum.readthedocs.org/en/latest/ .

自述文件中的一些示例:

基本:
>>> from plumbum import local, FG, BG
>>> from plumbum.cmd import ls, grep, wc, cat, head
>>> ls
LocalCommand(<LocalPath /bin/ls>)
>>> ls()
u'build.py\ndist\ndocs\nLICENSE\nplumbum\nREADME.rst\nsetup.py\ntests\ntodo.txt\n'
管道:
>>> chain = ls["-a"] | grep["-v", "\\.py"] | wc["-l"]
>>> print chain
/bin/ls -a | /bin/grep -v '\.py' | /usr/bin/wc -l
>>> chain()
u'13\n'
重定向:
>>> ((cat < "setup.py") | head["-n", 4])()
u'#!/usr/bin/env python\nimport os\n\ntry:\n'
>>> (ls["-a"] > "file.list")()
u''
>>> (cat["file.list"] | wc["-l"])()
u'17\n'

关于python cgi + 用于运行批处理命令的网络界面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10457871/

相关文章:

python - 以任何顺序和数字处理一系列 pyparsing 表达式

python - Pandas:如何从 CSV 读取字节和非字节列并解码字节列?

unix - 如何为 Perl 脚本的每一行输出运行 curl 命令?

python - 找到一个被新行打断的长单词

python - 在子类python中调用基类方法

linux - Bash - 使用双方括号和单方括号时

postgresql - 检查 unix shell 脚本中 psql 命令的返回状态

bash - 错误处理将一切都视为错误

java - 从名为 "- iPhone"的特殊目录中的 Excel VBA 宏启动自动摄取工具

python - 用空格传递Python JSON参数