X-Git-Url: http://www.iramuteq.org/git?a=blobdiff_plain;f=chemins.py;h=91efc9ad592b818348a305e3850ce0072132b255;hb=refs%2Fheads%2F3.0;hp=24a76debbed7920f74e162bcf5b709efa696c1cf;hpb=4dc1de2e438378f357bcbb2fd8cf0075e0bdcd55;p=iramuteq diff --git a/chemins.py b/chemins.py index 24a76de..91efc9a 100644 --- a/chemins.py +++ b/chemins.py @@ -1,16 +1,30 @@ -#!/bin/env python # -*- coding: utf-8 -*- #Author: Pierre Ratinaud -#Copyright (c) 2008 Pierre Ratinaud +#Copyright (c) 2008-2020 Pierre Ratinaud +#modification pour python 3 : Laurent Mérat, 6x7 - mai 2020 #License: GNU/GPL +#------------------------------------ +# import des modules python +#------------------------------------ import os +import sys import tempfile import logging + log = logging.getLogger('iramuteq.chemins') +def normpath_win32(path) : + if not sys.platform == 'win32' : + return path + while '\\\\' in path : + path = path.replace('\\\\', '\\') + if sys.platform == 'win32' and path.startswith('\\') and not path.startswith('\\\\') : + path = '\\' + path + return path + class PathOut : def __init__(self, filename = None, analyse_type = '', dirout = None) : if filename is not None : @@ -20,22 +34,30 @@ class PathOut : self.filename, self.fileext = os.path.splitext(self.filebasename) self.analyse = analyse_type #self.dirout = self.mkdirout(dirout) - if dirout is not None: + if dirout is not None: self.dirout = os.path.abspath(dirout) elif filename is not None and dirout is None: self.dirout = os.path.abspath(self.directory) - self.d = {} + self.d = {} def mkdirout(self) : dirout = os.path.join(self.dirout, self.filename + '_' + self.analyse + '_') nb = 1 - tdirout = dirout + `nb` + tdirout = dirout + repr(nb) while os.path.exists(tdirout) : nb += 1 - tdirout = dirout + `nb` + tdirout = dirout + repr(nb) self.name = os.path.splitext(tdirout)[1] return tdirout + def makenew(self, filename, ext): + nb = 1 + newfile = '_'.join([os.path.join(self.dirout, filename), '%i' % nb]) + '.' + ext + while os.path.exists(newfile) : + nb += 1 + newfile = '_'.join([os.path.join(self.dirout, filename), '%i' % nb]) + '.' + ext + return newfile + def createdir(self, tdirout) : if not os.path.exists(tdirout) : os.mkdir(tdirout) @@ -48,17 +70,20 @@ class PathOut : self.temp = tempfile.mkstemp(prefix='iramuteq')[1].replace('\\', '\\\\') return self.temp elif key not in self.d : - return os.path.join(self.dirout, key).replace('\\', '\\\\') + f = os.path.join(self.dirout, key).replace('\\', '\\\\') + return normpath_win32(f) + #return os.path.join(self.dirout, key).replace('\\', '\\\\') else : - return os.path.join(self.dirout, self.d[key]).replace('\\', '\\\\') - + f = os.path.join(self.dirout, self.d[key]).replace('\\', '\\\\') + return normpath_win32(f) + #return os.path.join(self.dirout, self.d[key]).replace('\\', '\\\\') + def getF(self, key) : return self.__getitem__(key).replace('\\', '/') - def ffr(filename): return filename.replace('\\', '\\\\') - + def FFF(filename): return filename.replace('\\', '/') @@ -145,6 +170,7 @@ def ConstructGlobalPath(AppliPath): ConfigPath = os.path.join(AppliPath, 'configuration') DictConfigPath = { 'global': os.path.join(ConfigPath, 'global.cfg'), + 'preferences': os.path.join(ConfigPath, 'iramuteq.cfg'), } return DictConfigPath @@ -215,7 +241,7 @@ ChdTxtPathOut = {'TableUc1': 'TableUc1.csv', 'rapport': 'RAPPORT.txt', 'pre_rapport' : 'info.txt', 'uce': 'uce.csv', - 'Rchdtxt': ffr(tempfile.mkstemp(prefix='iramuteq')[1]), + 'Rchdtxt': tempfile.mkstemp(prefix='iramuteq')[1].replace('\\', '\\\\'), 'arbre1': 'arbre_1.png', 'arbre2': 'arbre_2.png', 'dendro1': 'dendro1.png', @@ -239,13 +265,13 @@ ChdTxtPathOut = {'TableUc1': 'TableUc1.csv', 'AFC2DCoulSup': 'AFC2DCoulSup.png', 'AFC2DCoulEt': 'AFC2DCoulEt.png', 'AFC2DCoulCl': 'AFC2DCoulCl.png', - 'Rafc3d': ffr(tempfile.mkstemp(prefix='iramuteq')[1]), - 'R3DCoul': ffr(tempfile.mkstemp(prefix='iramuteq')[1]), + 'Rafc3d': tempfile.mkstemp(prefix='iramuteq')[1].replace('\\', '\\\\'), + 'R3DCoul': tempfile.mkstemp(prefix='iramuteq')[1].replace('\\', '\\\\'), 'RESULT_CHD': 'resultats-chd.html', 'RESULT_AFC': 'resultats-afc.html', 'Et01': 'Et01.csv', - 'Rchdquest':ffr(tempfile.mkstemp(prefix='iramuteq')[1]), - 'RTxtProfGraph':ffr(tempfile.mkstemp(prefix='iramuteq')[1]), + 'Rchdquest':tempfile.mkstemp(prefix='iramuteq')[1].replace('\\', '\\\\'), + 'RTxtProfGraph':tempfile.mkstemp(prefix='iramuteq')[1].replace('\\', '\\\\'), 'typelist': 'typelist.csv', 'concord':'concordancier.csv', 'bduceforme':'bduceforme.csv', @@ -293,6 +319,7 @@ def StatTxtPathOut(pathout): } return d +# ??? #def construct_simipath(pathout): # d = {'mat01' : 'mat01.csv', # 'matsimi' : 'matsimi.csv',