How to copy a file from a network share to local disk with variables?

Blake Blackwell picture Blake Blackwell · Jan 11, 2010 · Viewed 42.2k times · Source

If I use the following line:

shutil.copyfile(r"\\mynetworkshare\myfile.txt","C:\TEMP\myfile.txt")

everything works fine. However, what I can't seem to figure out is how to use a variable with the network share path, because I need the 'r' (relative?) flag. The end result I would imagine would be something like:

source_path = "\\mynetworkshare"
dest_path = "C:\TEMP"
file_name = "\\myfile.txt"

shutil.copyfile(r source_path + file_name,dest_path + file_name)

But I have had no luck with different variations of this approach.

Answer

Rudd Zwolinski picture Rudd Zwolinski · Jan 11, 2010

The r used in your first code example is making the string a "raw" string. In this example, that means the string will see the backslashes and not try to use them to escape \\ to just \.

To get your second code sample working, you'd use the r on the strings, and not in the copyfile command:

source_path = r"\\mynetworkshare"
dest_path = r"C:\TEMP"
file_name = "\\myfile.txt"

shutil.copyfile(source_path + file_name, dest_path + file_name)