[Tutor] file object in memory

bob gailer bgailer at gmail.com
Fri Jul 4 23:50:56 CEST 2008


Monika Jisswel wrote:
> Hi everyone,
>
> In my program I have this code :
>
>     self.run_cmd_0 = subprocess.Popen(self.cmd_0, stdout =
>     subprocess.PIPE, shell = True)     #(1)
>     self.run_cmd_1 = subprocess.Popen(self.TOCOL, stdin =
>     self.run_cmd_0.stdout, stdout = subprocess.PIPE, shell = True)    #(2)
>     self.result_0 =
>     StringIO.StringIO(self.run_cmd_1.communicate()[0])      #(3)
>
>
> (1) :  executes cmd_0 as a subprocess with stdout to PIPE
> (2) : executes cmd_1 a second process with stdin from the previouse cmd_0
> (3) : Here I tried to use StringIO module to create a file object from 
> stdout of cmd_1 : I need a file object because I have a mysql query 
> later in my program to load it into the database :
>
>     self.cmd_sql_2 = "load data local infile '%s' into table
>     statistics fields terminated by '\t' lines terminated by '\n'" %
>     self.FILE 
>
>
> so self.cur.execute(self.cmd_sql_2) fails.
> the problem is that  mysql  is expecting a REAL file for this query !! 
> is there any pythonic way of avoiding to write to disk before loading 
> into Mysql database ? some sort of in-memory file oject.

I don't think there is a pure Pythonic way. Have you considered using a 
RamDisk? http://en.wikipedia.org/wiki/RAM_disk for general details.

http://www.codeguru.com/cpp/w-p/system/devicedriverdevelopment/article.php/c5789/ 
for a Windows Ram Disk driver installer. I just tried it - it works like 
a charm.

HTH.

-- 
Bob Gailer
919-636-4239 Chapel Hill, NC



More information about the Tutor mailing list