PermissionError:Pythonの[Errno 13]


82

いくつかのPythonを学び始めたばかりで、以下のような問題が発生しています。

a_file = open('E:\Python Win7-64-AMD 3.3\Test', encoding='utf-8')

Traceback (most recent call last):
  File "<pyshell#9>", line 1, in <module>
    a_file = open('E:\Python Win7-64-AMD 3.3\Test', encoding='utf-8')
PermissionError: [Errno 13] Permission denied: 'E:\\Python Win7-64-AMD 3.3\\Test\

ファイルパーミッションエラーのようです。誰かが光を当てることができれば、それは大いにありがたいです。

注:PythonファイルとWindowsファイルがどのように機能するかはわかりませんが、管理者としてWindowsにログインしており、フォルダーには管理者権限があります。

.exe管理者として実行するようにプロパティを変更しようとしました。


7
Testファイルですか、それともフォルダですか?
Joachim Isaksson 2012年

1
@JoachimIsakssonエラー行の最後にあるように、これは間違いなくフォルダーです。それを答えてください。
Oleh Prypin 2012年

テストはフォルダーです。次の読み取りのドキュメントは、次の構文を使用してテキストドキュメントを開くことができます。a_file= open( 'E:\ Python Win7-64-AMD 3.3 \ Test \ a.txt'、encoding = 'utf-8' )この構文とa_file = open( 'E:\ Python Win7-64-AMD 3.3 \ Test'、encoding = 'utf-8')を使用すると、同じエラーが発生します。
BenniMcBeno 2012年

ちなみに、Windowsのパス名の生の文字列を使用することを忘れない、またはサブフォルダ名がで開始する起こるべき場合は、ひどく刺さでしょうnb...またはエスケープシーケンスの一部にすることができ、他の手紙
ティムPietzcker

わかりました。ファイルはフラッシュドライブにあり、フラッシュドライバーはFAT32で、HDはNTFSなので、フォーマットの競合でした> <ローカルで正常に動作します。ありがとう
ございます

回答:


64

するとき;

a_file = open('E:\Python Win7-64-AMD 3.3\Test', encoding='utf-8')

...ディレクトリをファイルとして開こうとしていますが、失敗する可能性があります(UNIX以外のほとんどのファイルシステムでは失敗します)。

しかし、あなたの他の例。

a_file = open('E:\Python Win7-64-AMD 3.3\Test\a.txt', encoding='utf-8')

の権限がある場合は、うまく機能するはずですa.txtrただし、パス\nに特殊文字に変換されるようなエスケープ文字が含まれていないことを確認するために、生の(接頭辞付き)文字列を使用することをお勧めします。

a_file = open(r'E:\Python Win7-64-AMD 3.3\Test\a.txt', encoding='utf-8')

私にとって幸運なロジャーは、今を除いてほぼ常にLinux上にいます笑> <、だから誰が私がそれをすることを提案しますか。ところで、テストはフォルダ/ディレクトリです
BenniMcBeno 2012年

2
@bennyboyファイルの代わりにディレクトリを開くことによって何を達成しようとしているのかによって異なります...?
Joachim Isaksson 2012年

15

私の場合、Excelで開いたファイルに書き込んでいました。


開いているExcelファイル(Pythonスクリプトを実行するマクロがあるため)に書き込む必要があります。どのように回避しますか?
勝利者

パンダがopen(filename、 "rb")で失敗し、Excelを閉じると問題が解決しましたが、なぜですか?
Niels Tolstrup

0

作業ディレクトリがC:\Windows\System32Pythonモジュールを実行する通常のディレクトリではなく、コマンドプロンプトから誤ってPythonモジュールを実行しようとしたときに、この問題が発生しました。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.