İzin Hatası: python'da [Errno 13]


83

Biraz python öğrenmeye başlıyorum ve aşağıda belirtildiği gibi bir sorun yaşıyorum:

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\

Bir dosya izin hatası gibi görünüyor, herhangi biri biraz ışık tutabilirse, çok memnun olur.

NOT: Python ve Windows dosyalarının nasıl çalıştığından emin değilim, ancak Windows'ta Yönetici olarak oturum açtım ve klasörün yönetici izinleri var.

.exeYönetici olarak çalıştırmak için özellikleri değiştirmeyi denedim .


7
TestDosya mı yoksa klasör mü?
Joachim Isaksson

1
@JoachimIsaksson Hata satırının sonunda görebileceğimiz gibi kesinlikle bir klasör. Bunu bir cevap haline getirin.
Oleh Prypin

Test bir klasördür, aşağıdaki belge, aşağıdaki sözdizimini kullanarak bir metin dokümanı açabileceğimi okur 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', kodlama = 'utf-8') gibi bu sözdizimini kullanmak da bana aynı hatayı veriyor.
BenniMcBeno

Bu arada Windows pathnames için ham dizeleri kullanmayı unutmayın veya bir alt isim ile başlamak yerine gelirse eğer kötü ısırılmış alırsınız nya bya bir çıkış sırası parçası olabilir başka mektup ...
Tim Pietzcker

tamam yani dosya bir flash sürücü üzerindeydi ve flash sürücü FAT32'ydi ve benim
HD'm

Yanıtlar:


67

Yaparken;

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

... bir dizini dosya olarak açmaya çalışıyorsunuz , bu da başarısız olabilir (ve UNIX olmayan çoğu dosya sisteminde).

Diğer örneğiniz yine de;

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

sadece izniniz varsa iyi çalışmalıdır a.txt. rYolunuzun \nözel karakterlere çevrilecek böyle bir kaçış karakteri içermediğinden emin olmak için ham ( önekli) bir dize kullanmak isteyebilirsiniz .

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

a ok Roger benim için şanslı, şu an dışında hemen hemen her zaman Linux kullanıyorum lol> <, öyleyse kime yapmamı önerirsin? btw Testi bir klasör / dizindir
BenniMcBeno

2
@bennyboy Dosya yerine dizini açarak elde etmeye çalıştığınız şeye bağlı ...?
Joachim Isaksson

16

Benim için Excel'de açılan bir dosyaya yazıyordum.


Açık excel dosyasına yazmam gerekiyor (içinde python betiğini çalıştıran bir makro olduğu için) nasıl geziniyorsunuz?
victor

Pandalarım açmada başarısız oldu (dosya adı, "rb"), Excel'i kapatmak sorunu çözdü, ama neden?
Niels Tolstrup

0

Bu sorunla, python modülümü komut isteminde yanlışlıkla çalıştırmayı denediğimde, çalışma dizinim python modülümü çalıştırdığım C:\Windows\System32normal dizin yerine çalıştırdığımda karşılaştım.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.