Strings in python are immutable, so you cannot treat them as a list and assign to indices.
line = line.replace(';', ':')
If you need to replace only certain semicolons, you’ll need to be more specific. You could use slicing to isolate the section of the string to replace in:
line = line[:10].replace(';', ':') + line[10:]
That’ll replace all semi-colons in the first 10 characters of the string.