["python","file","copy","python-2.x","pathlib"]
Copy file with pathlib in Python

I try to copy a file with pathlib import pathlib import shutil my_file=pathlib.Path('/etc/hosts') to_file=pathlib.Path('/tmp/foo') shutil.copy(my_file, to_file) I get this exception: /home/foo_egs_d/bin/python /home/foo_egs_d/src/test-pathlib-copy.py Traceback (most recent call last): File "/home/foo_egs_d/src/test-pathlib-copy.py", line 6, in <module> shutil.copy(my_file, to_file) File "/usr/lib/python2.7/shutil.py", line 117, in copy if os.path.isdir(dst): File "/home/foo_egs_d/lib/python2.7/genericpath.py", line 41, in isdir st = os.stat(s) TypeError: coercing to Unicode: need string or buffer, PosixPath found Process finished with exit code ... how to copy file with pathlib in Python 2.7?
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.