Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import os, re
- # zdrojovy adresar
- dir_src = r"c:\in"
- # cilovy adresar
- dir_dst = r"c:\out"
- # povolene pripony zpracovanych souboru
- suffixes = ('.txt','.log')
- # pole regularnich vyrazy
- res = [
- ['pors\/[\d\-]+\s+-\s+80', 'pors - 80'],
- ['lab\/[\d\-]+\s+-\s+80', 'lab - 80' ]
- ]
- # kompilace pole regularnich vyrazu
- def compileRES(res):
- for r in res:
- r[0] = re.compile(r[0])
- return res
- def modifFilename(fn_in, fn_out, res):
- print(fn_in, (60 - len(fn_in)) * '.', fn_out)
- # vytvor cilovy adresar
- os.makedirs(os.path.dirname(fn_out), exist_ok=True)
- # otevri soubor pro cteni a pro zapis
- with open(fn_in, "rt", encoding="utf-8") as fin:
- with open(fn_out, "wt", encoding="utf-8") as fout:
- # nacti radku
- for line in fin:
- # projed ji regularnimi vyrazy
- for r in res:
- line = r[0].sub(r[1], line)
- # zapis radku
- fout.write(line)
- # ------------------------------------------------------------
- if __name__ == "__main__":
- res = compileRES(res)
- # nacti rekurzivne vsechny soubory ve zdrojovem adreari
- for root, dirs, filenames in os.walk(dir_src):
- for name in filenames:
- # zpracuj jen ty vyhovujici pripone
- if os.path.splitext(name)[1].lower() in suffixes:
- # vytvor jmeno zdrojoveho a ciloveho souboru
- fn_in = os.path.join(root, name)
- fn_out = dir_dst + fn_in[len(dir_src):]
- # modifikuj soubor
- modifFilename(fn_in, fn_out, res)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement