2017-08-25 4 views
2

私は、Pyが同じユーザーとして実行されていることを確認しました。私はローカルで走っていてシェアに書いていますが、ホームディレクトリ(Pyが走っているところ)は問題ではありません。宛先ファイル(pull.zip)が存在するかどうかには同じエラーがあります。このために昇格する必要はありません。先のフォルダにPythonは書き込みアクセスを拒否しましたが、私は手動でアクセスしていますが、何が原因でしょうか?

PermissionError: [Errno 13] Permission denied: 
'\\domain\\share\\pull.zip' 

(パスが匿名化されています)

Efective Permissions:Pyを2または3

import requests, io 

url = "https://someplace/stuff.zip" 
loc = "\\domain\share\pull.zip" 

r = requests.get(url) 
print (r.status_code) 
with open(loc, 'w+b') as code: 
    code.write(r.content) 

戻り、この中に同じ結果。

+0

これらのバックスラッシュをエスケープする必要があります。パスが '\\ foobar'の場合、" \\ "は" \ "にエスケープするので、文字列は' \\\\ foobar'でなければなりません。 – user2722968

+0

ああ!もちろん。ありがとう! – RQF4

答えて

2

\\は、単一のバックスラッシュとして解釈されるescape sequenceです。あなたの「プル場合

loc = "\\\\domain\share\pull.zip" 

または生のリテラル

loc = r"\\domain\share\pull.zip" 
0

をあなたはそれらのうちの2つを表現するために4つのバックスラッシュを使用することができます(ただし、リテラルが別のエスケープシーケンスが含まれている場合、これは失敗します)。 "zip"はローカルです( "pull.zip"はあなたのpythonファイルの現在のディレクトリにある "domain"フォルダ内の "share"フォルダにあります)。\\を文字列locの先頭から削除し、他のすべてをスラッシュしてください。したがって、コードは次のようになります。

import requests, io 

url = "https://someplace/stuff.zip" 
loc = "domain\\share\\pull.zip" 

r = requests.get(url) 
print (r.status_code) 
with open(loc, 'w+b') as code: 
    code.write(r.content) 
関連する問題