[chimera-dev] Extensions - problem with paths
Eric Pettersen
pett at cgl.ucsf.edu
Tue May 10 10:26:06 PDT 2011
On May 7, 2011, at 1:07 PM, Mateusz Dobrychłop wrote:
> Hello,
>
> I'm trying to write my own Chimera extension. First of all, I'd like
> to thank you for providing so much useful information and so many
> examples on your site, it's extremely helpful.
>
> But there's one problem that might be a serious issue once I try to
> share this extension with other people. I don't know why, every time
> I need the extension to write a file, I have to determine an exact
> path to the localisation where I want the file to be placed.
> Otherwise it always creates the file on the desktop (I use Windows 7).
>
> Is there any way to make Chimera create new files in the extension's
> directory without giving it an accurate path?
Hi Mateusz,
I think the answer is no, you cannot get Chimera to write new files
in the extension's directory without giving an "accurate" (full)
path. That said, it isn't that hard to generate the full path, since
the Python module attribute __file__ gives the full path to that
module source file. So to write the file "x.y" in the extension's
directory you would:
import os.path
dir, fname = os.path.split(__file__)
out = open(os.path.join(dir, "x.y"), "w")
This raises the question of why you are writing a file into the
extension directory. Is it a temporary file of some sort? If so,
Chimera has a function (OpenSave.osTemporaryFile) for generating a
temporary file path that will be removed when Chimera quits. So using
that to open a temporary file ending in ".y" would be:
from OpenSave import osTemporaryFile
tmpPath = osTemporaryFile(suffix=".y")
out = open(tmpPath, "w")
--Eric
Eric Pettersen
UCSF Computer Graphics Lab
http://www.cgl.ucsf.edu
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://plato.cgl.ucsf.edu/pipermail/chimera-dev/attachments/20110510/3bbbcb8c/attachment.html>
More information about the Chimera-dev
mailing list