cokofreedom
3/12/2008 3:28:00 PM
On Mar 12, 2:44 pm, Robert Bossy <Robert.Bo...@jouy.inra.fr> wrote:
> Matt Nordhoff wrote:
> > Robert Bossy wrote:
>
> >> k.i.n.g. wrote:
>
> >>> I think I am not clear with my question, I am sorry. Here goes the
> >>> exact requirement.
>
> >>> We use dd command in Linux to create a file with of required size. In
> >>> similar way, on windows I would like to use python to take the size of
> >>> the file( 50MB, 1GB ) as input from user and create a uncompressed
> >>> file of the size given by the user.
>
> >>> ex: If user input is 50M, script should create 50Mb of blank or empty
> >>> file
>
> >> def make_blank_file(path, size):
> >> f = open(path, 'w')
> >> f.seek(size - 1)
> >> f.write('\0')
> >> f.close()
>
> >> I'm not sure the f.seek() trick will work on all platforms, so you can:
>
> >> def make_blank_file(path, size):
> >> f = open(path, 'w')
> >> f.write('\0' * size)
> >> f.close()
>
> > I point out that a 1 GB string is probably not a good idea.
>
> > def make_blank_file(path, size):
> > chunksize = 10485760 # 10 MB
> > chunk = '\0' * chunksize
> > left = size
> > fh = open(path, 'wb')
> > while left > chunksize:
> > fh.write(chunk)
> > left -= chunksize
> > if left > 0:
> > fh.write('\0' * left)
> > fh.close()
>
> Indeed! Maybe the best choice for chunksize would be the file's buffer
> size... I won't search the doc how to get the file's buffer size because
> I'm too cool to use that function and prefer the seek() option since
> it's lighning fast regardless the size of the file and it takes near to
> zero memory.
>
> Cheers,
> RB
But what platforms does it work on / not work on?