Advertisement
anden3

directoryconverter.py

Aug 17th, 2017
123
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.95 KB | None | 0 0
  1. import os
  2.  
  3. from glob import glob
  4.  
  5.  
  6. directories = glob("*/")
  7.  
  8. directory_map = {
  9.     "@celle2": "1088396647",
  10.     "@isladuala_a3": "1088396647",
  11.     "@Jbad": "1088396647",
  12.     "@lingor_a3": "1088396647",
  13.     "@LYTHIUM": "1088396647",
  14.     "@Napf Island A3": "1088396647",
  15.     "@Schwemlitz": "1088396647",
  16.     "@Thirsk": "1088396647",
  17.     "@Bozcaada": "1088396647",
  18.     "@abramia": "1088396647",
  19.     "@3cb_baf_equipment": "893328083",
  20.     "@3cb_baf_units": "893346105",
  21.     "@3cb_baf_vehicles": "893349825",
  22.     "@3cb_baf_weapons": "893339590",
  23.     "@ace": "1088349154",
  24.     "@ALiVE": "620260972",
  25.     "@AresModAchiliesExpansion": "723217262",
  26.     "@CBA": "450814997",
  27.     "@CUP_Terrains_Core": "583496184",
  28.     "@CUP_Terrains_CWA": "853743366",
  29.     "@CUP_Terrains_Maps": "583544987",
  30.     "@RHSAFRF": "843425103",
  31.     "@RHSGREF": "843593391",
  32.     "@RHSUSAF": "843577117",
  33.     "@ShackTac User Interface": "",
  34.     "@TFR": "620019431",
  35.     "@Werthles' Headless Module": "510031102",
  36.     "@burnes_challenger": "1088392903",
  37.     "@BWMod": "1088392903",
  38.     "": "1088392903",
  39.     "@Cha_Lav25": "1088392903",
  40.     "@EWK_HMMWV": "1088392903",
  41.     "@FV510 Warrior": "1088392903",
  42.     "@Hover Board": "1088392903",
  43.     "@K_MNP": "1088392903",
  44.     "@NIArsenal": "1088392903",
  45.     "@NIArsenal_ACR": "1088392903",
  46.     "@Project OPFOR": "1088392903",
  47.     "@tf47_launchers": "1088392903",
  48.     "@TacticalBeards": "1088392903",
  49.     "@US Military Mod": "1088392903",
  50.     "@Advanced_Rappeling": "1088392903",
  51.     "@Advanced_Towing": "1088392903",
  52.     "@BackpackOnChest": "1088392903"
  53. }
  54.  
  55.  
  56. def movetree(src, dst, symlinks=False, ignore=None):
  57.     names = os.listdir(src)
  58.  
  59.     if ignore is not None:
  60.         ignored_names = ignore(src, names)
  61.     else:
  62.         ignored_names = set()
  63.  
  64.     try:
  65.         os.makedirs(dst)
  66.     except OSError as exc:
  67.         # XXX - this is pretty ugly
  68.         if "file already exists" in exc.strerror:  # Windows
  69.             pass
  70.         elif "File exists" in exc.strerror:  # Linux
  71.             pass
  72.         else:
  73.             raise
  74.  
  75.     for name in names:
  76.         if name in ignored_names:
  77.             continue
  78.  
  79.         src_name = os.path.join(src, name)
  80.         dst_name = os.path.join(dst, name)
  81.  
  82.         if os.path.isfile(dst_name):
  83.             os.remove(src_name)
  84.             continue
  85.  
  86.         try:
  87.             if symlinks and os.path.islink(src_name):
  88.                 link_to = os.readlink(src_name)
  89.                 os.symlink(link_to, dst_name)
  90.                 os.remove(src_name)
  91.  
  92.             elif os.path.isdir(src_name):
  93.                 movetree(src_name, dst_name, symlinks, ignore)
  94.  
  95.             else:
  96.                 os.rename(src_name, dst_name)
  97.  
  98.         except (IOError, os.error) as why:
  99.             print(src, dst, str(why))
  100.  
  101.     os.rmdir(src)
  102.  
  103. for directory in directories:
  104.     dir_name = directory[:-1]
  105.  
  106.     if directory_map.get(dir_name):
  107.         movetree(directory, directory_map.get(dir_name))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement