Re: get the size of a dynamically changing file fast ?

2008-01-24 Thread Stef Mientki
Gabriel Genellina wrote:
 En Wed, 23 Jan 2008 16:16:58 -0200, Stef Mientki 
 [EMAIL PROTECTED] escribió:
 
 Yes, that's a small disadavantage of using a high-level language,
 where there's no flush available, and you assume it'll done
 automatically ;-)

 Uhm, there is a flush method for Python's files.  From http://

 I was talking about a high-level language, in which the sending
 program was written,
 (Delphi, not about Python ;-)
 
 In Delphi, flush(filevar) does work.
flush is only valid for textfiles, not for binary files (at least in D7)

anyway thanks, cheers,
Stef
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: get the size of a dynamically changing file fast ?

2008-01-23 Thread Jason
On Jan 22, 3:22 pm, Stef Mientki [EMAIL PROTECTED] wrote:
 Mike Driscoll wrote:
  On Jan 22, 3:35 pm, Stef Mientki [EMAIL PROTECTED] wrote:

  Mike Driscoll wrote:

  On Jan 17, 3:56 pm, Stef Mientki [EMAIL PROTECTED] wrote:

  hello,

  I've a program (not written in Python) that generates a few thousands
  bytes per second,
  these files are dumped in 2 buffers (files), at in interval time of 50 
  msec,
  the files can be read by another program, to do further processing.

  A program written in VB or delphi can handle the data in the 2 buffers
  perfectly.
  Sometimes Python is also able to process the data correctly,
  but often it can't :-(

  I keep one of the files open en test the size of the open datafile each
  50 msec.
  I have tried
  os.stat ( ) [ ST_SIZE]
  os.path.getsize ( ... )
  but they both have the same behaviour, sometimes it works, and the data
  is collected each 50 .. 100 msec,
  sometimes 1 .. 1.5 seconds is needed to detect a change in filesize.

  I'm using python 2.4 on winXP.

  Is there a solution for this problem ?

  thanks,
  Stef Mientki

  Tim Golden has a method to watch for changes in a directory on his
  website:

 http://tgolden.sc.sabren.com/python/win32_how_do_i/watch_directory_fo...

  This old post also mentions something similar:

 http://mail.python.org/pipermail/python-list/2007-October/463065.html

  And here's a cookbook recipe that claims to do it as well using
  decorators:

 http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/426620

  Hopefully that will get you going.

  Mike

  thanks Mike,
  sorry for the late reaction.
  I've it working perfect now.
  After all, os.stat works perfectly well,
  the problem was in the program that generated the file with increasing
  size,
  by truncating it after each block write, it apperently garantees that
  the file is flushed to disk and all problems are solved.

  cheers,
  Stef Mientki

  I almost asked if you were making sure you had flushed the data to the
  file...oh well.

 Yes, that's a small disadavantage of using a high-level language,
 where there's no flush available, and you assume it'll done
 automatically ;-)

 cheers,
 Stef

Uhm, there is a flush method for Python's files.  From http://
docs.python.org/lib/bltin-file-objects.html:
flush()
Flush the internal buffer, like stdio's fflush(). This may
be a no-op on some file-like objects.

As for an example:

 import os
 f = open('vikings.txt', 'wb')
 os.stat('vikings.txt').st_size
0L
 f.write('Spam, spam, spam, spam!  ' * 1000)  # Bloody vikings...
 os.stat('vikings.txt').st_size
24576L
 f.flush()
 os.stat('vikings.txt').st_size
25000L


Is there something that I'm missing here?

  --Jason
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: get the size of a dynamically changing file fast ?

2008-01-23 Thread Stef Mientki

 thanks Mike,
 sorry for the late reaction.
 I've it working perfect now.
 After all, os.stat works perfectly well,
 the problem was in the program that generated the file with increasing
 size,
 by truncating it after each block write, it apperently garantees that
 the file is flushed to disk and all problems are solved.
 
 cheers,
 Stef Mientki
 
 I almost asked if you were making sure you had flushed the data to the
 file...oh well.
   
 Yes, that's a small disadavantage of using a high-level language,
 where there's no flush available, and you assume it'll done
 automatically ;-)

 cheers,
 Stef
 

 Uhm, there is a flush method for Python's files.  From http://
 docs.python.org/lib/bltin-file-objects.html:
 flush()
 Flush the internal buffer, like stdio's fflush(). This may
 be a no-op on some file-like objects.

 As for an example:

   
 import os
 f = open('vikings.txt', 'wb')
 os.stat('vikings.txt').st_size
 
 0L
   
 f.write('Spam, spam, spam, spam!  ' * 1000)  # Bloody vikings...
 os.stat('vikings.txt').st_size
 
 24576L
   
 f.flush()
 os.stat('vikings.txt').st_size
 
 25000L
   

 Is there something that I'm missing here?

   
hi Jason,
I was talking about a high-level language, in which the sending 
program was written,
(Delphi, not about Python ;-)
cheers,
Stef

-- 
http://mail.python.org/mailman/listinfo/python-list


Re: get the size of a dynamically changing file fast ?

2008-01-23 Thread Gabriel Genellina
En Wed, 23 Jan 2008 16:16:58 -0200, Stef Mientki [EMAIL PROTECTED]  
escribió:

 Yes, that's a small disadavantage of using a high-level language,
 where there's no flush available, and you assume it'll done
 automatically ;-)

 Uhm, there is a flush method for Python's files.  From http://

 I was talking about a high-level language, in which the sending
 program was written,
 (Delphi, not about Python ;-)

In Delphi, flush(filevar) does work. Or are you using a TFileStream or  
similar?

-- 
Gabriel Genellina

-- 
http://mail.python.org/mailman/listinfo/python-list


Re: get the size of a dynamically changing file fast ?

2008-01-22 Thread Stef Mientki
Mike Driscoll wrote:
 On Jan 17, 3:56 pm, Stef Mientki [EMAIL PROTECTED] wrote:
   
 hello,

 I've a program (not written in Python) that generates a few thousands
 bytes per second,
 these files are dumped in 2 buffers (files), at in interval time of 50 msec,
 the files can be read by another program, to do further processing.

 A program written in VB or delphi can handle the data in the 2 buffers
 perfectly.
 Sometimes Python is also able to process the data correctly,
 but often it can't :-(

 I keep one of the files open en test the size of the open datafile each
 50 msec.
 I have tried
 os.stat ( ) [ ST_SIZE]
 os.path.getsize ( ... )
 but they both have the same behaviour, sometimes it works, and the data
 is collected each 50 .. 100 msec,
 sometimes 1 .. 1.5 seconds is needed to detect a change in filesize.

 I'm using python 2.4 on winXP.

 Is there a solution for this problem ?

 thanks,
 Stef Mientki
 

 Tim Golden has a method to watch for changes in a directory on his
 website:

 http://tgolden.sc.sabren.com/python/win32_how_do_i/watch_directory_for_changes.html

 This old post also mentions something similar:

 http://mail.python.org/pipermail/python-list/2007-October/463065.html

 And here's a cookbook recipe that claims to do it as well using
 decorators:

 http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/426620

 Hopefully that will get you going.

 Mike
   
thanks Mike,
sorry for the late reaction.
I've it working perfect now.
After all, os.stat works perfectly well,
the problem was in the program that generated the file with increasing 
size,
by truncating it after each block write, it apperently garantees that 
the file is flushed to disk and all problems are solved.

cheers,
Stef Mientki


-- 
http://mail.python.org/mailman/listinfo/python-list


Re: get the size of a dynamically changing file fast ?

2008-01-22 Thread Mike Driscoll
On Jan 22, 3:35 pm, Stef Mientki [EMAIL PROTECTED] wrote:
 Mike Driscoll wrote:
  On Jan 17, 3:56 pm, Stef Mientki [EMAIL PROTECTED] wrote:

  hello,

  I've a program (not written in Python) that generates a few thousands
  bytes per second,
  these files are dumped in 2 buffers (files), at in interval time of 50 
  msec,
  the files can be read by another program, to do further processing.

  A program written in VB or delphi can handle the data in the 2 buffers
  perfectly.
  Sometimes Python is also able to process the data correctly,
  but often it can't :-(

  I keep one of the files open en test the size of the open datafile each
  50 msec.
  I have tried
  os.stat ( ) [ ST_SIZE]
  os.path.getsize ( ... )
  but they both have the same behaviour, sometimes it works, and the data
  is collected each 50 .. 100 msec,
  sometimes 1 .. 1.5 seconds is needed to detect a change in filesize.

  I'm using python 2.4 on winXP.

  Is there a solution for this problem ?

  thanks,
  Stef Mientki

  Tim Golden has a method to watch for changes in a directory on his
  website:

 http://tgolden.sc.sabren.com/python/win32_how_do_i/watch_directory_fo...

  This old post also mentions something similar:

 http://mail.python.org/pipermail/python-list/2007-October/463065.html

  And here's a cookbook recipe that claims to do it as well using
  decorators:

 http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/426620

  Hopefully that will get you going.

  Mike

 thanks Mike,
 sorry for the late reaction.
 I've it working perfect now.
 After all, os.stat works perfectly well,
 the problem was in the program that generated the file with increasing
 size,
 by truncating it after each block write, it apperently garantees that
 the file is flushed to disk and all problems are solved.

 cheers,
 Stef Mientki

I almost asked if you were making sure you had flushed the data to the
file...oh well.

Mike
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: get the size of a dynamically changing file fast ?

2008-01-22 Thread Stef Mientki
Mike Driscoll wrote:
 On Jan 22, 3:35 pm, Stef Mientki [EMAIL PROTECTED] wrote:
   
 Mike Driscoll wrote:
 
 On Jan 17, 3:56 pm, Stef Mientki [EMAIL PROTECTED] wrote:
   
 hello,
 
 I've a program (not written in Python) that generates a few thousands
 bytes per second,
 these files are dumped in 2 buffers (files), at in interval time of 50 
 msec,
 the files can be read by another program, to do further processing.
 
 A program written in VB or delphi can handle the data in the 2 buffers
 perfectly.
 Sometimes Python is also able to process the data correctly,
 but often it can't :-(
 
 I keep one of the files open en test the size of the open datafile each
 50 msec.
 I have tried
 os.stat ( ) [ ST_SIZE]
 os.path.getsize ( ... )
 but they both have the same behaviour, sometimes it works, and the data
 is collected each 50 .. 100 msec,
 sometimes 1 .. 1.5 seconds is needed to detect a change in filesize.
 
 I'm using python 2.4 on winXP.
 
 Is there a solution for this problem ?
 
 thanks,
 Stef Mientki
 
 Tim Golden has a method to watch for changes in a directory on his
 website:
   
 http://tgolden.sc.sabren.com/python/win32_how_do_i/watch_directory_fo...
   
 This old post also mentions something similar:
   
 http://mail.python.org/pipermail/python-list/2007-October/463065.html
   
 And here's a cookbook recipe that claims to do it as well using
 decorators:
   
 http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/426620
   
 Hopefully that will get you going.
   
 Mike
   
 thanks Mike,
 sorry for the late reaction.
 I've it working perfect now.
 After all, os.stat works perfectly well,
 the problem was in the program that generated the file with increasing
 size,
 by truncating it after each block write, it apperently garantees that
 the file is flushed to disk and all problems are solved.

 cheers,
 Stef Mientki
 

 I almost asked if you were making sure you had flushed the data to the
 file...oh well.
   
Yes, that's a small disadavantage of using a high-level language,
where there's no flush available, and you assume it'll done 
automatically ;-)

cheers,
Stef

-- 
http://mail.python.org/mailman/listinfo/python-list


Re: get the size of a dynamically changing file fast ?

2008-01-18 Thread Mike Driscoll
On Jan 17, 3:56 pm, Stef Mientki [EMAIL PROTECTED] wrote:
 hello,

 I've a program (not written in Python) that generates a few thousands
 bytes per second,
 these files are dumped in 2 buffers (files), at in interval time of 50 msec,
 the files can be read by another program, to do further processing.

 A program written in VB or delphi can handle the data in the 2 buffers
 perfectly.
 Sometimes Python is also able to process the data correctly,
 but often it can't :-(

 I keep one of the files open en test the size of the open datafile each
 50 msec.
 I have tried
 os.stat ( ) [ ST_SIZE]
 os.path.getsize ( ... )
 but they both have the same behaviour, sometimes it works, and the data
 is collected each 50 .. 100 msec,
 sometimes 1 .. 1.5 seconds is needed to detect a change in filesize.

 I'm using python 2.4 on winXP.

 Is there a solution for this problem ?

 thanks,
 Stef Mientki

Tim Golden has a method to watch for changes in a directory on his
website:

http://tgolden.sc.sabren.com/python/win32_how_do_i/watch_directory_for_changes.html

This old post also mentions something similar:

http://mail.python.org/pipermail/python-list/2007-October/463065.html

And here's a cookbook recipe that claims to do it as well using
decorators:

http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/426620

Hopefully that will get you going.

Mike
-- 
http://mail.python.org/mailman/listinfo/python-list