def runFile( filepath, basePath=None, cmd=None, debug=False ): """ Runs the filepath in a shell with proper commands given, or passes the command to the shell. (CMD in windows) the current platform :param filepath: path to the file to execute :param basePath: working directory where the command should be called from. If omitted, the current working directory is used. """ status = False filepath = Path(filepath) # make sure the filepath we're running is a file if not filepath.isfile(): return status # determine the base path for the system if basePath is None: basePath = filepath.dir() options = { 'filepath': filepath, 'basepath': basePath } if cmd == None : if filepath.ext in ['.py','.pyw']: if debug: cmd = 'python.exe "{0}"'.format(filepath) else: cmd = 'pythonw.exe "{0}"'.format(filepath) status = subprocess.Popen( cmd, stdout=sys.stdout, stderr=sys.stderr, shell=debug, cwd=basePath) if not status : try: status = os.startfile(filepath) except: print('runFile cannot run type (*{0})'.format(filepath.ext)) return status
def runFile( filepath, basePath=None, cmd=None, debug=False ): """ Runs the filepath in a shell with proper commands given, or passes the command to the shell. (CMD in windows) the current platform :param filepath: path to the file to execute :param basePath: working directory where the command should be called from. If omitted, the current working directory is used. """ status = False filepath = Path(filepath) # make sure the filepath we're running is a file if not filepath.isfile(): return status # determine the base path for the system if basePath is None: basePath = filepath.dir() options = { 'filepath': filepath, 'basepath': basePath } if cmd == None : if filepath.ext in ['.py','.pyw']: if debug: cmd = 'python.exe "{0}"'.format(filepath) else: cmd = 'pythonw.exe "{0}"'.format(filepath) status = subprocess.Popen( cmd, stdout=sys.stdout, stderr=sys.stderr, shell=debug, cwd=basePath) if not status : try: status = os.startfile(filepath) except: print 'runFile cannot run type (*{0})'.format(filepath.ext) return status