コード例 #1
0
    def saveAllSpectra(self):
        fltrs = ['Raw ASCII *.txt',
                 '","-separated CSV *.csv',
                 '";"-separated CSV *.csv',
                 '"tab"-separated CSV *.csv',
                 'OMNIC CSV *.csv']
        message = "Enter file name to be used as root"
        fileList, fileFilter = PyMcaFileDialogs.getFileList(parent=self,
                                                            filetypelist=fltrs,
                                                            message=message,
                                                            currentdir=None,
                                                            mode="SAVE",
                                                            getfilter=True,
                                                            single=True,
                                                            currentfilter=None,
                                                            native=None)
        if not len(fileList):
            return

        fileroot = fileList[0]
        dirname = os.path.dirname(fileroot)
        root, ext = os.path.splitext(os.path.basename(fileroot))
        if ext not in [".txt", ".csv"]:
            root = root + ext
            ext = ""

        # get appropriate extensions and separators
        filterused = fileFilter.split()
        if filterused[0].startswith("Raw"):
            csv = False
            ext = "txt"
            csvseparator = "  "
        elif filterused[0].startswith("OMNIC"):
            # extension is csv but saved as ASCII
            csv = False
            ext = "csv"
            csvseparator = ","        
        else:
            csv = True
            ext = "csv"
            if "," in filterused[0]:
                csvseparator = ","
            elif ";" in filterused[0]:
                csvseparator = ";"
            elif "OMNIC" in filterused[0]:
                csvseparator = ","
            else:
                csvseparator = "\t"

        nSpectra = len(self.spectrumList)
        n = int(numpy.log10(nSpectra)) + 1
        fmt = "_%" + "0%dd" % n + ".%s"
        for index in range(nSpectra):
            legend = self.spectrumNames[index]
            x = self.xValues[index]
            y = self.spectrumList[index]
            filename = os.path.join(dirname, root + fmt % (index, ext))
            ArraySave.saveXY(x, y, filename, ylabel=legend,
                             csv=csv, csvseparator=csvseparator)
コード例 #2
0
    def _saveSlot(self):
        if self.outputDir is None:
            if self.inputDir is not None:
                self.outputDir = self.inputDir
            else:
                self.outputDir = PyMcaDirs.outputDir
        wdir = self.outputDir
        format_list = ['";"-separated CSV *.csv',
                       '","-separated CSV *.csv',
                       '"tab"-separated CSV *.csv']
        if self.outputFilter is None:
            self.outputFilter = format_list[0]
        outfile, filterused = PyMcaFileDialogs.getFileList(self,
                                        filetypelist=format_list,
                                        mode="SAVE",
                                        message="Output File Selection",
                                        currentdir=wdir,
                                        currentfilter=self.outputFilter,
                                        getfilter=True,
                                        single=True)
        if len(outfile):
            outputFile = qt.safe_str(outfile[0])
        else:
            return
        self.outputFilter = qt.safe_str(filterused)
        filterused = self.outputFilter.split()
        try:
            self.outputDir  = os.path.dirname(outputFile)
            PyMcaDirs.outputDir = os.path.dirname(outputFile)
        except:
            self.outputDir  = "."
        if not outputFile.endswith('.csv'):
            outputFile += '.csv'
        #always overwrite
        if "," in filterused[0]:
            csv = ","
        elif ";" in filterused[0]:
            csv = ";"
        else:
            csv = "\t"

        ddict = self.getTransmissionTable()
        x = ddict["energy"]
        y = ddict["transmission"]

        try:
            ArraySave.saveXY(x, y, outputFile,
                             xlabel="Energy", ylabel="Transmission",
                             csv=True, csvseparator=csv)
        except IOError:
            msg = qt.QMessageBox(self)
            msg.setIcon(qt.QMessageBox.Critical)
            msg.setText("Input Output Error: %s" % (sys.exc_info()[1]))
            msg.exec()
            return