Marcin Jakuszko

Create an enormous file in seconds with python

I often have a need to test something with a big size file. You can need this for various reasons, such as:

I have a handy script in python to generate big file in seconds. You can generate 1GB file with:

$ generate_file.py -n big-file -s 1024

generate_file.py

#!/usr/bin/env python3
import sys
import os
import argparse

def generate_file(size_in_mb, file_name):
  mega_byte = 1_000_000
  with open(file_name, 'wb') as file:
    file.write(os.urandom(size_in_mb*mega_byte))


def main():
  parser = argparse.ArgumentParser(description='Generate file with a given name and size (in megabytes)')
  parser.add_argument('-s', type=int, required=True, dest='size', help='Size of the file (in megabytes)')
  parser.add_argument('-n', type=str, required=True, dest='name', help='Name of the file')

  arguments = parser.parse_args()
  generate_file(arguments.size, arguments.name)


if __name__ == '__main__':
  main()

#coding #performance #python #snippet #tutorial