Bla*_*ell 11 python share network-programming
如果我使用以下行:
shutil.copyfile(r"\\mynetworkshare\myfile.txt","C:\TEMP\myfile.txt")
Run Code Online (Sandbox Code Playgroud)
一切正常.但是,我似乎无法弄清楚如何使用带有网络共享路径的变量,因为我需要'r'(相对?)标志.我想象的最终结果将是:
source_path = "\\mynetworkshare"
dest_path = "C:\TEMP"
file_name = "\\myfile.txt"
shutil.copyfile(r source_path + file_name,dest_path + file_name)
Run Code Online (Sandbox Code Playgroud)
但我对这种方法的不同变化没有运气.
Rud*_*ski 23
在r您的第一个代码示例中使用正在字符串"原始"的字符串.在这个例子中,这意味着该字符串会看到反斜杠,而不是试图用他们逃离\\只是\.
要使第二个代码示例正常工作,您将使用r字符串,而不是copyfile命令:
source_path = r"\\mynetworkshare"
dest_path = r"C:\TEMP"
file_name = "\\myfile.txt"
shutil.copyfile(source_path + file_name, dest_path + file_name)
Run Code Online (Sandbox Code Playgroud)
该r是“原始字符串”,而不是相对的。如果您没有在字符串前加上r,Python 会将反斜杠 " \" 视为转义字符。
因此,当您的字符串包含反斜杠时,您要么必须r在它前面加上一个,要么为您想要出现的每个反斜杠加上两个反斜杠。
>>> r"\\myfile" == "\\\\myfile"
True
Run Code Online (Sandbox Code Playgroud)