I have a manually created rope mesh that has a Bezier curve modifier. Currently, I can control it by selecting the Bezier knots in Edit mode and dragging them.

However, I want to be able to manipulate the rope from an arbitrary starting configuration to a goal configuration, by reassigning the rope mesh vertex coordinates in the starting configuration to their coordinates in the goal configuration. This entails moving the mesh vertices of the rope rather than the Bezier knot coordinates, and having the Bezier curve reinterpolate to fit the new rope. How can I accomplish this?
I can access the vertices of the rope like so: verts = list(bpy.data.objects['Rope'].data.vertices)
but changing any vertex coordinate like verts[i].co.z += k in the Blender Scripting shell does not visually change the rope.
Or, is there another modifier that would allow me to deform the rope (without warping it) by using the mesh vertices directly, instead of the curve modifier?
Thanks!