Skip to content

Instantly share code, notes, and snippets.

Created November 18, 2013 02:34
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save anonymous/7521526 to your computer and use it in GitHub Desktop.
Save anonymous/7521526 to your computer and use it in GitHub Desktop.
Comparison of Python and Go programming.
package main
import (
"path/filepath"
"io/ioutil"
"regexp"
"fmt"
"strings"
)
/*
* def retrieveLatestDateSuffix(target):
* return max(map("".join, filter(lambda x: x,
* map(lambda x: re.findall(r"_([0-9]{8})\.txt$", x),
* os.listdir(target)))))
*/
var rldsPat = regexp.MustCompile(`_([0-9]{8})\.txt$`)
func retrieveLatestDateSuffix(target string) (string, error) {
if fis, e := ioutil.ReadDir(target); e == nil {
t := ""
for _, fi := range fis {
if m := rldsPat.FindStringSubmatch(fi.Name()); m != nil {
if m[1] > t { t = m[1] }
}
}
return t, nil
} else {
return "", e
}
}
/*
* def addDateSuffix(target, suffix):
* for fn in filter(lambda x: re.search(r"(?<!_[0-9]{8})\.txt$", x), os.listdir(target)):
* pref, ext = os.path.splitext(fn)
* gn = "{0}_{1}{2}".format(pref, suffix, ext)
* print(fn, " -> ", gn)
*/
var adsPat1 = regexp.MustCompile(`\.txt$`)
var adsPat2 = regexp.MustCompile(`_[0-9]{8}\.txt$`)
func addDateSuffix(target string, suffix string) error {
if fis, e := ioutil.ReadDir(target); e == nil {
for _, fi := range fis {
if m1 := adsPat1.FindStringSubmatch(fi.Name()); m1 != nil {
if m2 := adsPat2.FindStringSubmatch(fi.Name()); m2 == nil {
ext := filepath.Ext(fi.Name())
gn := fmt.Sprintf("%s_%s%s", strings.TrimSuffix(fi.Name(), ext), suffix, ext)
fmt.Println(fi.Name(), "->", gn)
}
}
}
return nil
} else {
return e
}
}
func main() {
target := "."
latest, _ := retrieveLatestDateSuffix(target)
addDateSuffix(target, latest)
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment