import os
from glob import glob
directories = glob("*/")
directory_map = {
"@celle2": "1088396647",
"@isladuala_a3": "1088396647",
"@Jbad": "1088396647",
"@lingor_a3": "1088396647",
"@LYTHIUM": "1088396647",
"@Napf Island A3": "1088396647",
"@Schwemlitz": "1088396647",
"@Thirsk": "1088396647",
"@Bozcaada": "1088396647",
"@abramia": "1088396647",
"@3cb_baf_equipment": "893328083",
"@3cb_baf_units": "893346105",
"@3cb_baf_vehicles": "893349825",
"@3cb_baf_weapons": "893339590",
"@ace": "1088349154",
"@ALiVE": "620260972",
"@AresModAchiliesExpansion": "723217262",
"@CBA": "450814997",
"@CUP_Terrains_Core": "583496184",
"@CUP_Terrains_CWA": "853743366",
"@CUP_Terrains_Maps": "583544987",
"@RHSAFRF": "843425103",
"@RHSGREF": "843593391",
"@RHSUSAF": "843577117",
"@ShackTac User Interface": "",
"@TFR": "620019431",
"@Werthles' Headless Module": "510031102",
"@burnes_challenger": "1088392903",
"@BWMod": "1088392903",
"": "1088392903",
"@Cha_Lav25": "1088392903",
"@EWK_HMMWV": "1088392903",
"@FV510 Warrior": "1088392903",
"@Hover Board": "1088392903",
"@K_MNP": "1088392903",
"@NIArsenal": "1088392903",
"@NIArsenal_ACR": "1088392903",
"@Project OPFOR": "1088392903",
"@tf47_launchers": "1088392903",
"@TacticalBeards": "1088392903",
"@US Military Mod": "1088392903",
"@Advanced_Rappeling": "1088392903",
"@Advanced_Towing": "1088392903",
"@BackpackOnChest": "1088392903"
}
def movetree(src, dst, symlinks=False, ignore=None):
names = os.listdir(src)
if ignore is not None:
ignored_names = ignore(src, names)
else:
ignored_names = set()
try:
os.makedirs(dst)
except OSError as exc:
# XXX - this is pretty ugly
if "file already exists" in exc.strerror: # Windows
pass
elif "File exists" in exc.strerror: # Linux
pass
else:
raise
for name in names:
if name in ignored_names:
continue
src_name = os.path.join(src, name)
dst_name = os.path.join(dst, name)
if os.path.isfile(dst_name):
os.remove(src_name)
continue
try:
if symlinks and os.path.islink(src_name):
link_to = os.readlink(src_name)
os.symlink(link_to, dst_name)
os.remove(src_name)
elif os.path.isdir(src_name):
movetree(src_name, dst_name, symlinks, ignore)
else:
os.rename(src_name, dst_name)
except (IOError, os.error) as why:
print(src, dst, str(why))
os.rmdir(src)
for directory in directories:
dir_name = directory[:-1]
if directory_map.get(dir_name):
movetree(directory, directory_map.get(dir_name))
Comments