Se rendre au contenu
Menu
Cette question a été signalée
3 Réponses
16125 Vues

Imagine yourself in a module's form, as if you were going to update it.

You can see the name, the summary the version... but, for some reason, you need to know where the module physically is. You need to know the actual path to the files.

How can you do that? Should you run a search on every addon folder in the config, looking for a folder with the same name of the module or is there any "secret" way of getting that info?

;)

Avatar
Ignorer
Meilleure réponse

put this in your code: 

import os
path = os.path.join(os.path.dirname(os.path.abspath(__file__)))

wich will return the path of file the code is in... (show it as you find apropriate.. as field value, popup message etc...)

 

hope it helps :)

Avatar
Ignorer
Meilleure réponse
import os
directory = os.path.dirname(__file__)
print('Your directory path:--------', directory)


Avatar
Ignorer
Auteur Meilleure réponse

Thanks Bole but that was pretty much what I was doing and it would only show me the current module. The script had to tell me the path of the module where it was beeing executed from and not where the python file was located.

This is how I eventually did the trick:

        folder_found=False
        addons_path=config['addons_path'].split(',')
        for addons_folder in addons_path:
            readme_path=addons_folder + '\\' + self.name
            
            if os.path.isdir(readme_path):
                folder_found=True
                try:
                    f=open(readme_path +'/README.md',"w")
                    f.write(readme_txt.encode('utf-8'))
                    f.close()
                except:
                    raise osv.except_osv(_('Error!'),_('Unable to write file at ' + readme_path))
                break

        if not folder_found:
            raise osv.except_osv(_('Error!'),_("Unable to find '%s' folder " % self.name))

 

Avatar
Ignorer