mirror of
https://github.com/OPM/ResInsight.git
synced 2026-11-07 06:36:47 -06:00
47 lines
1.1 KiB
Python
47 lines
1.1 KiB
Python
import os
|
|
import shutil
|
|
|
|
class PathContext(object):
|
|
def __init__(self , path , store = False):
|
|
self.path = path
|
|
self.cwd = os.getcwd()
|
|
self.store = store
|
|
self.path_list = [ ]
|
|
|
|
if not os.path.exists(path):
|
|
work_path = path
|
|
|
|
while True:
|
|
work_path , base = os.path.split(work_path)
|
|
if work_path:
|
|
if os.path.isdir(work_path):
|
|
break
|
|
else:
|
|
self.path_list.append( work_path )
|
|
else:
|
|
break
|
|
|
|
os.makedirs( path )
|
|
else:
|
|
if not self.store:
|
|
raise OSError("Entry %s already exists" % path)
|
|
os.chdir( path )
|
|
|
|
|
|
|
|
def __exit__(self , exc_type , exc_val , exc_tb):
|
|
os.chdir( self.cwd )
|
|
if self.store == False:
|
|
shutil.rmtree( self.path )
|
|
for path in self.path_list:
|
|
try:
|
|
os.rmdir( path )
|
|
except OSError:
|
|
break
|
|
|
|
return False
|
|
|
|
|
|
def __enter__(self):
|
|
return self
|