英文:
How to run external Python script in Golang?
问题
我想运行一个外部的Python脚本,它需要4个参数。如果我想在cmd中运行Python脚本,命令应该是这样的:python Required\Python\screenshot.py-master\screenshot.py --nojs -thumb http://google.com/ Required\Images\Screenshots\google.jpg
所以,我想从Go语言中运行这个命令。我应该如何实现呢?
谢谢。
英文:
I would like to run an external Python script that gets 4 arguments. If I would like to run the Python script in cmd it would look like this: python Required\Python\screenshot.py-master\screenshot.py --nojs -thumb http://google.com/ Required\Images\Screenshots\google.jpg
So, I would like to run this command from Go.
How could I implement this?
Thanks.
答案1
得分: 2
如果文档中的示例不够有帮助,也许这个例子能让你更容易理解。
test.go:
package main
import (
"log"
"os"
"os/exec"
)
func main() {
log.Println(os.Args)
if len(os.Args) == 1 {
return
}
cmd := exec.Command(os.Args[1], os.Args[2:]...)
cmd.Stdout = os.Stdout
cmd.Stderr = os.Stderr
log.Println(cmd.Run())
}
test.py:
import sys
print sys.argv
用法:
$ go run test.go python test.py 1 two 3 four
2016/02/20 21:45:42 [/tmp/go-build772613382/command-line-arguments/_obj/exe/test python test.py 1 two 3 four]
['test.py', '1', 'two', '3', 'four']
2016/02/20 21:45:42 <nil>
英文:
If examples from doc are not helpful, maybe this will make it easier for you.
test.go:
package main
import (
"log"
"os"
"os/exec"
)
func main() {
log.Println(os.Args)
if len(os.Args) == 1 {
return
}
cmd := exec.Command(os.Args[1], os.Args[2:]...)
cmd.Stdout = os.Stdout
cmd.Stderr = os.Stderr
log.Println(cmd.Run())
}
test.py:
import sys
print sys.argv
usage:
$ go run test.go python test.py 1 two 3 four
2016/02/20 21:45:42 [/tmp/go-build772613382/command-line-arguments/_obj/exe/test python test.py 1 two 3 four]
['test.py', '1', 'two', '3', 'four']
2016/02/20 21:45:42 <nil>
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论