37 lines
804 B
Python
37 lines
804 B
Python
|
import argparse
|
||
|
import os
|
||
|
import sys
|
||
|
|
||
|
from voussoirkit import bytestring
|
||
|
|
||
|
|
||
|
filename = os.path.abspath(sys.argv[1])
|
||
|
|
||
|
|
||
|
def zerofile(filename, length):
|
||
|
if os.path.exists(filename):
|
||
|
raise ValueError(f'{filename} already exists.')
|
||
|
|
||
|
with open(filename, 'wb') as handle:
|
||
|
handle.seek(length - 1)
|
||
|
handle.write(bytes([0]))
|
||
|
|
||
|
def zerofile_argparse(args):
|
||
|
return zerofile(
|
||
|
filename=args.filename,
|
||
|
length=bytestring.parsebytes(args.length),
|
||
|
)
|
||
|
|
||
|
def main(argv):
|
||
|
parser = argparse.ArgumentParser(description=__doc__)
|
||
|
|
||
|
parser.add_argument('filename')
|
||
|
parser.add_argument('length')
|
||
|
parser.set_defaults(func=zerofile_argparse)
|
||
|
|
||
|
args = parser.parse_args(argv)
|
||
|
args.func(args)
|
||
|
|
||
|
if __name__ == '__main__':
|
||
|
raise SystemExit(main(sys.argv[1:]))
|