/ / Come posso cambiare la funzione di filigrana in modo che scriva ";" invece di "," quando è all'interno di "(" ")"? - python, scrittura di file

Come posso modificare la funzione di filigrana in modo che scriva ";" invece di "," quando è all'interno di "(" ")"? - python, scrittura di file

Questo è ciò che la mia funzione sta scrivendo:

Marianne Thibault, french, ("phones",), 11:09, 230

Questo è ciò che voglio che scriva:

Marianne Thibault, french, (phones; computers), 11:09, 230

Questa è la funzione che sto usando:

 header="n".join(header)
out_file=open(file_name,"w")
out_file.write(str(header)+ "n")
out_file.write("Operators:"+"n")
for i in range(len(operators)):
out_file.write(", ".join(map(str, operators[i])))
out_file.write("n")
out_file.close()

risposte:

1 per risposta № 1
with open(file_name, "w") as out_file:
out_file.write("n".join(header))
out_file.write("nOperators:n")
for operator in operators:
formatted_fields = []
for field in operator:
if isinstance(field, tuple):
semi_delimited_field = "; ".join(str(x) for x in field)
field_in_parens = "(" + semi_delimited_field + ")"
formatted_fields.append(field_in_parens)
else:
formatted_fields.append(str(field))
out_file.write(", ".join(formatted_fields))
out_file.write("n")