Yes, I tried using os.subprocess() but there was some sort of parsing
error.  I'll just stick with the temporary file for now; the
documentation seems to indicate that is how yaml.load should be used
anyway...



On Mon, Dec 13, 2010 at 11:43 AM, Wayne Werner <waynejwer...@gmail.com> wrote:
> On Mon, Dec 13, 2010 at 11:08 AM, Sean Carolan <scaro...@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
_______________________________________________
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor

Reply via email to