mystring = 'some string' pos = 10 with open('/path/to/file.txt', 'r+') as f: contents = f.read() contents = contents[:pos] + mystring + contents[pos + 1:] f.seek(0) f.truncate() f.write(contents)