To use shutil.copy:
import pathlib
import shutil
my_file = pathlib.Path('/etc/hosts')
to_file = pathlib.Path('/tmp/foo')
shutil.copy(str(my_file), str(to_file)) # For Python <= 3.7.
shutil.copy(my_file, to_file) # For Python 3.8+.
The problem is pathlib.Path create a PosixPath object if you’re using Unix/Linux, WindowsPath if you’re using Microsoft Windows.
With older versions of Python, shutil.copy requires a string as its arguments. For them, use the str function here.