我有一个模板文件template.html
,如下所示
Hello {{.Name}}, welcome!
和代码
import (
"fmt"
"text/template"
)
func main() {
type person struct {
Name string
}
p := &person{"clinyong"}
t := template.Must(template.New("template.html").ParseFiles("template.html"))
f, err := os.OpenFile("test", os.O_CREATE, 0777)
if err != nil {
fmt.Println(err)
return
}
defer f.Close()
err := t.Execute(f, p)
if err != nil {
fmt.Println(err)
}
}
t.Execute(f, p)
调用错误,说f是一个错误的文件描述符。
是否可以执行模板输出到文件,如上所示?我看到一些例子,f
中的Execute
几乎是http.ResponseWriter或os.Stdout。
答案 0 :(得分:3)
正如@TimCooper所说,我需要在os.O_WRONLY
中加入os.OpenFile
。