Advertisement
Guest User

Untitled

a guest
Jun 10th, 2019
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.48 KB | None | 0 0
  1. import os, re
  2.  
  3. # zdrojovy adresar
  4. dir_src = r"c:\in"
  5.  
  6. # cilovy adresar
  7. dir_dst = r"c:\out"
  8.  
  9. # povolene pripony zpracovanych souboru
  10. suffixes = ('.txt','.log')
  11.  
  12. # pole regularnich vyrazy
  13. res = [
  14.   ['pors\/[\d\-]+\s+-\s+80', 'pors - 80'],
  15.   ['lab\/[\d\-]+\s+-\s+80', 'lab - 80' ]
  16. ]
  17.  
  18. # kompilace pole regularnich vyrazu
  19. def compileRES(res):
  20.   for r in res:
  21.     r[0] = re.compile(r[0])
  22.   return res
  23.  
  24. def modifFilename(fn_in, fn_out, res):
  25.   print(fn_in, (60 - len(fn_in)) * '.', fn_out)
  26.   # vytvor cilovy adresar
  27.   os.makedirs(os.path.dirname(fn_out), exist_ok=True)
  28.   # otevri soubor pro cteni a pro zapis
  29.   with open(fn_in, "rt", encoding="utf-8") as fin:
  30.     with open(fn_out, "wt", encoding="utf-8") as fout:
  31.       # nacti radku
  32.       for line in fin:
  33.         # projed ji regularnimi vyrazy
  34.         for r in res:
  35.           line = r[0].sub(r[1], line)
  36.         # zapis radku
  37.         fout.write(line)
  38.  
  39.  
  40. # ------------------------------------------------------------
  41. if __name__ == "__main__":
  42.   res = compileRES(res)
  43.   # nacti rekurzivne vsechny soubory ve zdrojovem adreari
  44.   for root, dirs, filenames in os.walk(dir_src):
  45.     for name in filenames:
  46.       # zpracuj jen ty vyhovujici pripone
  47.       if os.path.splitext(name)[1].lower() in suffixes:
  48.         # vytvor jmeno zdrojoveho a ciloveho souboru
  49.         fn_in = os.path.join(root, name)
  50.         fn_out = dir_dst + fn_in[len(dir_src):]
  51.         # modifikuj soubor
  52.         modifFilename(fn_in, fn_out, res)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement