[Tutor] Problem with "yaml load"

Wayne Werner waynejwerner at gmail.com
Mon Dec 13 18:43:31 CET 2010


On Mon, Dec 13, 2010 at 11:08 AM, Sean Carolan <scarolan at gmail.com> wrote:

> Hi folks:
>
> I'm trying to define a short function that will import yaml data into
> a python dictionary.  I am able to do this by dumping my data into a
> temporary file and then importing it with yaml.load.  I would like to
> see if I can eliminate the temporary file and import the data
> directly.
>
> This works fine:
>
> import yaml
> import os
>
> def grabfacts():
>    ''' This function grabs facter data and sucks it into a dictionary
>    called dataMap '''
>    os.system('facter --yaml > /tmp/sysdata.yaml')
>    f = open('/tmp/sysdata.yaml')
>    dataMap = yaml.load(f)
>    f.close()
>
> Is there an easy way to do this without writing to a temporary file?


Presumably you could use something like subprocess and simply pipe stdout to
your program. I presume facter --yaml will produce output to stdout? It's
fairly trivial to read stdout using subprocess.

http://docs.python.org/library/subprocess.html

that should get you started.
HTH,
Wayne
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/tutor/attachments/20101213/b1f06a80/attachment.html>


More information about the Tutor mailing list