PermissionError: [Errno 13] trong python


82

Chỉ mới bắt đầu tìm hiểu một số python và tôi đang gặp sự cố như đã nêu bên dưới:

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\

Có vẻ là một lỗi cấp phép tệp, nếu bất kỳ ai có thể chiếu một số ánh sáng, nó sẽ được đánh giá rất cao.

LƯU Ý: không chắc các tệp Python và Windows hoạt động như thế nào nhưng tôi đã đăng nhập vào Windows với tư cách Quản trị viên và thư mục có quyền quản trị viên.

Tôi đã thử thay đổi .exethuộc tính để chạy với tư cách Quản trị viên.


7
Testmột tập tin hay một thư mục?
Joachim Isaksson

1
@JoachimIsaksson Đó chắc chắn là một thư mục, như chúng ta có thể thấy ở cuối dòng lỗi. Hãy biến đó thành một câu trả lời.
Oleh Prypin

Kiểm tra là một thư mục, Tài liệu tôi đọc sau tôi có thể mở một tài liệu văn bản bằng cú pháp sau a_file = open ('E: \ Python Win7-64-AMD 3.3 \ Test \ a.txt', encoding = 'utf-8' ) sử dụng cú pháp này cũng như a_file = open ('E: \ Python Win7-64-AMD 3.3 \ Test', encoding = 'utf-8') cho tôi cùng một lỗi.
BenniMcBeno

Nhân tiện, hãy nhớ sử dụng các chuỗi thô cho tên đường dẫn Windows, nếu không bạn sẽ bị cắn rất nặng nếu tên thư mục con bắt đầu bằng nhoặc bhoặc bất kỳ chữ cái nào khác có thể là một phần của chuỗi thoát ...
Tim Pietzcker

ok vì vậy các tập tin đã được trên một ổ đĩa flash và trình điều khiển đèn flash là FAT32 và HD của tôi là NTFS nên nó được định dạng mâu thuẫn> <làm việc đó tại địa phương hoạt động tốt, nhờ chàng trai
BenniMcBeno

Câu trả lời:


64

Khi làm;

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

... bạn đang cố gắng mở một thư mục dưới dạng tệp, điều này có thể (và trên hầu hết các hệ thống tệp không phải UNIX) sẽ không thành công.

Ví dụ khác của bạn mặc dù;

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

sẽ hoạt động tốt nếu bạn chỉ có quyền bật a.txt. Tuy nhiên, bạn có thể muốn sử dụng một chuỗi thô (có rtiền tố), để đảm bảo rằng đường dẫn của bạn không chứa bất kỳ ký tự thoát nào như \nvậy sẽ được dịch sang các ký tự đặc biệt.

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

ok Roger may mắn cho tôi là tôi luôn sử dụng Linux ngoại trừ bây giờ lol> <, vậy bạn đề nghị tôi làm điều đó với ai. btw Kiểm tra là một thư mục / thư mục
BenniMcBeno

2
@bennyboy Phụ thuộc vào những gì bạn đang cố gắng đạt được bằng cách mở thư mục thay vì tệp ...?
Joachim Isaksson

15

Đối với tôi, tôi đang ghi vào một tệp được mở bằng Excel.


Tôi cần viết trên tệp excel đang mở (vì nó có macro thực thi tập lệnh python) bạn làm thế nào để xử lý nó?
người chiến thắng

Những chú gấu trúc của tôi không mở được (tên tệp, "rb"), việc đóng Excel đã giải quyết được sự cố, nhưng tại sao?
Niels Tolstrup

0

Tôi gặp phải sự cố này khi vô tình thử chạy mô-đun python của mình thông qua dấu nhắc lệnh trong khi thư mục làm việc của tôi C:\Windows\System32thay vì thư mục thông thường mà từ đó tôi chạy mô-đun python của mình

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.