Python CSV file slicer
Here are some of the things I've noticed:


switching to argparse might make the argument parsing a bit more readable
the read_files() + remove_old_files() functions could make use of glob module with the **+recursive mode:

for filename in glob.iglob('./**/[0-9]+.csv', recursive=True):
    os.remove(filename)

avoid calling "magic" methods like __len__() when not necessary - you can use len() function directly
you can define first_col in one line:

first_col = sys.argv[2] if len(sys.argv) &gt; 2 else None

c and f are not good variable names, think of something more descriptive - input_file and output_file?..
you can use an f-string to define the "filename" for a chunk
move the comments before the functions into proper docstrings


Also, what if you would slice the CSV in an iterative manner, something along these lines (other improvements applied):

import csv
import glob
import os
import sys
from itertools import islice


def remove_old_files():
    """Removing files which match certain pattern."""
    for filename in glob.iglob('./**/[0-9]+.csv', recursive=True):
        os.remove(filename)


def chunks(it, size):
    it = iter(it)
    return iter(lambda: tuple(islice(it, size)), ())


def split(csv_file, number_of_slices, first_column):
    """Split file into number_of_slices pieces."""
    with open(csv_file, 'r') as input_file:
        reader = csv.reader(input_file)

        for num_file, chunk in enumerate(chunks(reader, number_of_slices)):
            with open(f"{num_file}.csv", 'w') as output_file:
                writer = csv.writer(output_file)

                if first_column:
                    for row in chunk:
                        writer.writerow([first_column] + row)
                else:
                    writer.writerows(chunk)


if __name__ == "__main__":
    # TODO: argparse?
    if int(sys.argv[1]) &lt;= 0:
        raise SystemExit("Piece count must be natural number greater than zero.")
    number_of_slices = int(sys.argv[1])
    first_column = sys.argv[2] if len(sys.argv) &gt; 2 else None

    remove_old_files()

    for filename in glob.iglob('./**/*.csv', recursive=True):
        split(filename, number_of_slices, first_column)