On Mar 12, 2:44 pm, Robert Bossy <[EMAIL PROTECTED]> 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? -- http://mail.python.org/mailman/listinfo/python-list