# -*- coding: iso-8859-1 -*- #. // _lo_GetUrl.py from os import getcwd from os import makedirs from os.path import exists from os.path import getsize from win32com.client import Dispatch #. // Sélectionne une URL à ouvrir avec Libre Office. def lo_GetUrl( oServiceManager = None, cFilter = "NoFilter" ): cDir = "" cDirWork = getcwd() cFileLast = cDirWork + "\\Parameters\\LastDir.txt" lClose = False if oServiceManager is None: oServiceManager = Dispatch( "com.sun.star.ServiceManager" ) lClose = True #. endif #. // [by_makedir] if not exists( cDirWork + "\\Parameters" ): makedirs( cDirWork + "\\Parameters" ) #. endif #. // [/by_makedir] if exists( cFileLast ): if getsize( cFileLast ) > 0: oFile = open( cFileLast, "r" ) cDir = oFile.read() oFile.close() if not exists( cDir ): cDir = "" #. endif #. endif #. endif if len( cDir ) == 0 : cDir = cDirWork #. endif oFilePicker = oServiceManager.CreateInstance( "com.sun.star.ui.dialogs.FilePicker" ) oFilePicker.initialize( [ None ] ) oFilePicker.setDisplayDirectory( cDir ) if cFilter == "Writer": oFilePicker.appendFilter( "Texte ODF (*.odt )" , "*.odt" ) oFilePicker.appendFilter( "Word (*.docx, *.doc )" , "*.docx;*.doc" ) oFilePicker.appendFilter( "Texte enrichi (*.rtf )" , "*.rtf" ) oFilePicker.appendFilter( "Texte (*.txt )" , "*.txt" ) #. endif oFilePicker.appendFilter( "Tous les fichiers (*.* )", "*.*" ) cUrl = "" if oFilePicker.Execute() == 1: cUrl = oFilePicker.Files[ 0 ] #. // [by_UrlToFile] cDir = cUrl cDir = cDir.replace( "file:///", "" ) cDir = cDir.replace( "/", "\\" ) cDir = cDir.replace( "%20", " " ) cDir = cDir.replace( "|", ":" ) #. // [/by_UrlToFile] oFile = open( cFileLast, "w" ) oFile.write( cDir[ : cDir.rfind( "\\" ) ] ) oFile.close() #. endif if lClose: oServiceManager = None #. endif return cUrl ''' Dernière modification : 2022-02-07 [Exemple] import sys sys.path.append( "modules" ) from _lo_GetUrl import lo_GetUrl # // Sélectionne une URL à ouvrir avec Libre Office. from _by_UrlToFile import by_UrlToFile # // Convertir un nom de fichier URL en Windows. cUrl = lo_GetUrl() print() print( cUrl ) print() print( by_UrlToFile( cUrl ) ) [/Exemple] '''