PermissionError:[Errno 13]权限被拒绝:尝试将工作簿写入桌面时

0 python permissions permission-denied

我的代码如下:

from openpyxl import *

wb = Workbook()
ws = wb.active
ws.title = "primes"

prime_list = find_primes_to(1000)

index = 0
while index < prime_list.__len__():
    ws.cell( row = index + 1, column = 1, value = prime_list[index])
    index += 1

print("almost done")

wb.close()
wb.save('C:/Users/David/Desktop')

print("done")
Run Code Online (Sandbox Code Playgroud)

“wb.save()”之前的所有内容似乎都工作正常,如果我在没有路径的情况下运行它,它执行得很好(尽管我找不到它保存到的位置)。添加路径会将其作为输出:

almost done
Traceback (most recent call last):
  File "C:/Users/David/PycharmProjects/Primes/Primes runner.py", line 62, in <module>
    wb.save('C:/Users/David/Desktop')
  File "C:\Users\David\PycharmProjects\Primes\venv\lib\site-packages\openpyxl\workbook\workbook.py", line 372, in save
    save_workbook(self, filename)
  File "C:\Users\David\PycharmProjects\Primes\venv\lib\site-packages\openpyxl\writer\excel.py", line 282, in save_workbook
    archive = ZipFile(filename, 'w', ZIP_DEFLATED, allowZip64=True)
  File "C:\Users\David\AppData\Local\Programs\Python\Python36-32\lib\zipfile.py", line 1090, in __init__
    self.fp = io.open(file, filemode)
PermissionError: [Errno 13] Permission denied: 'C:/Users/David/Desktop'

Process finished with exit code 1
Run Code Online (Sandbox Code Playgroud)

我检查了错误代码。我尝试过以管理员身份运行它,我尝试过将其保存到不同的文件位置。我尝试将其保存到不同的驱动器,甚至外部闪存驱动器。我不知道如何获得适当的权限。有什么建议么?

编辑:好吧,我解决了。为了保存它,您必须在路径末尾添加一个实际的文件名,如下所示:“C:/Users/David/Desktop/test.xlsx”。这将创建新文件

小智 7

我有同样的错误......但看起来我在后台打开了输出文件。我关闭了它并且程序运行良好。