Alimenta la función de Python con un número variable de argumentos

Tengo un script que lee un número variable de campos de un archivo de entrada y los paso a una función como argumentos. Por ejemplo:

Archivo 1 con campos: A, B y C => function(A,B,C)

Archivo N con campos: A, B, C y D => function(A,B,C,D)

Mi pregunta es: ¿Cómo alimentar la función con el número correcto de campos de acuerdo con el archivo de entrada?

PD: Por supuesto, la función acepta cualquier número de argumentos.

Lea los campos (argumentos) en una lista y luego use el desempaquetado de argumentos :

 function(*fields) 

A continuación se muestra una demostración:

 >>> def func(*args): ... return args ... >>> fields = ["A", "B", "C"] >>> func(*fields) ('A', 'B', 'C') >>> fields = ["A", "B", "C", "D"] >>> func(*fields) ('A', 'B', 'C', 'D') >>> 

Deberías usar args y kwargs así:

 def foo(*args, **kwargs): pass 

De esta manera puede obtener parámetros posicionales y con nombre, args debe ser una lista de valores, mantener los argumentos posicionales, kwargs debe ser un diccionario, sus claves el nombre del argumento con su valor