Source code for pymcxray.BatchFile

#!/usr/bin/env python
"""
.. py:currentmodule:: BatchFile
.. moduleauthor:: Hendrix Demers <hendrix.demers@mail.mcgill.ca>

MCXRay batch file creator.
"""

# Script information for the file.
__author__ = "Hendrix Demers (hendrix.demers@mail.mcgill.ca)"
__version__ = ""
__date__ = ""
__copyright__ = "Copyright (c) 2012 Hendrix Demers"
__license__ = ""

# Subversion informations for the file.
__svnRevision__ = "$Revision$"
__svnDate__ = "$Date$"
__svnId__ = "$Id$"

# Standard library modules.
import os
import logging
import math

# Third party modules.

# Local modules.

# Project modules

# Globals and constants variables.

[docs]class BatchFile(object): def __init__(self, name, numberFiles=1): self._name = name self._numberFiles = numberFiles self._extension = ".bfs" self._simulationFilenames = []
[docs] def addSimulationName(self, simulationFilename): self._simulationFilenames.append(simulationFilename)
[docs] def write(self, path): self.removePreviousFiles(path) if len(self._simulationFilenames) == 0: return if self._numberFiles > 1: indexStep = int(math.ceil(float(len(self._simulationFilenames))/float(self._numberFiles))) indexFilenames = 0 for indexFile in range(self._numberFiles): filename = self._name + "_%i" % (indexFile+1) + self._extension filepath = os.path.join(path, filename) logging.info("Write batch file: %s", filepath) batchFile = open(filepath, 'w') for simulationFilename in self._simulationFilenames[indexFilenames:indexFilenames+indexStep]: line = simulationFilename + "\n" batchFile.write(line) indexFilenames += indexStep batchFile.close() else: filename = self._name + self._extension filepath = os.path.join(path, filename) logging.info("Write batch file: %s", filepath) batchFile = open(filepath, 'w') for simulationFilename in self._simulationFilenames: line = simulationFilename + "\n" batchFile.write(line) batchFile.close()
[docs] def removePreviousFiles(self, path): for filename in os.listdir(path): if filename.startswith(self._name) and filename.endswith(self._extension): filepath = os.path.join(path, filename) logging.info("Remove previous file: %s", filepath) os.remove(filepath)