tech:go_lang_-_les_fichiers
Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
| tech:go_lang_-_les_fichiers [2026/05/14 22:13] – Jean-Baptiste | tech:go_lang_-_les_fichiers [2026/05/16 11:41] (Version actuelle) – Jean-Baptiste | ||
|---|---|---|---|
| Ligne 1: | Ligne 1: | ||
| + | < | ||
| + | {{tag> | ||
| + | |||
| + | # Go lang - les fichiers | ||
| + | |||
| + | Exemple lecture fichier texte | ||
| + | ~~~go | ||
| + | package main | ||
| + | |||
| + | import ( | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | ) | ||
| + | |||
| + | func main() { | ||
| + | |||
| + | file, err := os.Open(" | ||
| + | if err != nil { | ||
| + | panic(err) | ||
| + | } | ||
| + | defer func() { | ||
| + | if err := file.Close(); | ||
| + | panic(err) | ||
| + | } | ||
| + | }() | ||
| + | scanner := bufio.NewScanner(file) | ||
| + | |||
| + | // Iterate over each line | ||
| + | for scanner.Scan() { | ||
| + | line := scanner.Text() | ||
| + | fmt.Println(line) | ||
| + | } | ||
| + | |||
| + | } | ||
| + | ~~~ | ||
| + | |||
| + | Exemple d' | ||
| + | ~~~go | ||
| + | func write_file(filename string, data string) { | ||
| + | file, err := os.Create(filename) | ||
| + | if err != nil { | ||
| + | panic(err) | ||
| + | } | ||
| + | defer func() { | ||
| + | if err := file.Close(); | ||
| + | panic(err) | ||
| + | } | ||
| + | }() | ||
| + | _, err = file.WriteString(data) | ||
| + | if err != nil { | ||
| + | panic(err) | ||
| + | } | ||
| + | |||
| + | } | ||
| + | ~~~ | ||
| + | |||
| + | Exemple de copie de fichier | ||
| + | |||
| + | Voir : https:// | ||
| + | |||
| + | ~~~go | ||
| + | func copyFile(src, | ||
| + | input, err := ioutil.ReadFile(src) | ||
| + | if err != nil { | ||
| + | panic(err) | ||
| + | } | ||
| + | |||
| + | err = ioutil.WriteFile(dest, | ||
| + | if err != nil { | ||
| + | fmt.Println(" | ||
| + | panic(err) | ||
| + | } | ||
| + | } | ||
| + | ~~~ | ||
| + | |||
| + | |||
| + | Fichier droits POSIX octal mode | ||
| + | |||
| + | Voir aussi : | ||
| + | * https:// | ||
| + | |||
| + | ~~~go | ||
| + | file, err := os.Lstat("/ | ||
| + | if err != nil { | ||
| + | panic(err) | ||
| + | } | ||
| + | mode := file.Mode() | ||
| + | fmt.Printf(" | ||
| + | fmt.Printf(" | ||
| + | ~~~ | ||
| + | |||
| + | |||
| + | Exemple lecture fichier CSV | ||
| + | ~~~go | ||
| + | package main | ||
| + | |||
| + | import ( | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | ) | ||
| + | |||
| + | func IsMatchingRegex(s string, regex string) bool { | ||
| + | return regexp.MustCompile(regex).MatchString(s) | ||
| + | } | ||
| + | |||
| + | func main() { | ||
| + | file, err := os.Open(" | ||
| + | if err != nil { | ||
| + | log.Fatal(err) | ||
| + | } | ||
| + | defer file.Close() | ||
| + | |||
| + | // Read all records from the CSV file | ||
| + | reader := csv.NewReader(file) | ||
| + | reader.Comma = ';' | ||
| + | records, err := reader.ReadAll() | ||
| + | if err != nil { | ||
| + | log.Fatal(err) | ||
| + | } | ||
| + | |||
| + | |||
| + | for _, record := range records[1:] { | ||
| + | if IsMatchingRegex(record[0], | ||
| + | continue | ||
| + | } | ||
| + | |||
| + | fmt.Println(record[0]) | ||
| + | fmt.Println(record[1]) | ||
| + | } | ||
| + | } | ||
| + | ~~~ | ||
| + | |||
| + | |||
| + | |||
| + | Exemple de calcul de hash d'un fichier | ||
| + | ~~~go | ||
| + | package main | ||
| + | |||
| + | import ( | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | ) | ||
| + | |||
| + | func hashFile(filePath string) (string, error) { | ||
| + | file, err := os.Open(filePath) | ||
| + | if err != nil { | ||
| + | return "", | ||
| + | } | ||
| + | defer file.Close() | ||
| + | |||
| + | hasher := sha256.New() | ||
| + | if _, err := io.Copy(hasher, | ||
| + | return "", | ||
| + | } | ||
| + | |||
| + | return hex.EncodeToString(hasher.Sum(nil)), | ||
| + | } | ||
| + | |||
| + | func main() { | ||
| + | hash, err := hashFile("/ | ||
| + | if err != nil { | ||
| + | panic(err) | ||
| + | } | ||
| + | |||
| + | fmt.Println(hash) | ||
| + | } | ||
| + | ~~~ | ||
| + | |||
