Как создать новый файл с помощью скрипта go

Я новичок, чтобы пойти lang. Я могу создать новый файл из терминала, используя скрипт go. как это

go run ../myscript.go > ../filename.txt

но я хочу создать файл из скрипта.

package main

import "fmt"

func main() {
    fmt.Println("Hello") > filename.txt
}

go
person yarlg    schedule 14.10.2017    source источник


Ответы (3)


Если вы пытаетесь напечатать некоторый текст в файл, один из способов сделать это, как показано ниже, однако, если файл уже существует, его содержимое будет потеряно:

package main

import (
    "fmt"
    "io/ioutil"
)

func main() {
    err := ioutil.WriteFile("filename.txt", []byte("Hello"), 0755)
    if err != nil {
        fmt.Printf("Unable to write file: %v", err)
    }
}

Следующий способ позволит вам добавить существующий файл, если он уже существует, или создать новый файл, если он не существует:

package main

import (
    "os"
    "log"
)


func main() {
    // If the file doesn't exist, create it, or append to the file
    f, err := os.OpenFile("access.log", os.O_APPEND|os.O_CREATE|os.O_WRONLY, 0644)
    if err != nil {
        log.Fatal(err)
    }

    _, err = f.Write([]byte("Hello"))
    if err != nil {
        log.Fatal(err)
    }

    f.Close()
}
person Jack Gore    schedule 14.10.2017

вам просто нужно проверить документацию API. Это один из способов сделать это, есть и другие (с os или bufio)

package main

import (
    "io/ioutil"
)

func main() {
    // read the whole file at once
    b, err := ioutil.ReadFile("input.txt")
    if err != nil {
        panic(err)
    }

    // write the whole body at once
    err = ioutil.WriteFile("output.txt", b, 0644)
    if err != nil {
        panic(err)
    }
}
person sheplu    schedule 14.10.2017

Fprintln довольно близко к тому, что вы пытались сделать:

package main

import (
   "fmt"
   "os"
)

func main() {
   f, e := os.Create("filename.txt")
   if e != nil {
      panic(e)
   }
   defer f.Close()
   fmt.Fprintln(f, "Hello")
}

https://golang.org/pkg/fmt#Fprintln

person Steven Penny    schedule 24.04.2021