我的代码如下:
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")
“ 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
我已经检查了错误代码。我尝试以管理员身份运行它,尝试将其保存到其他文件位置。我尝试将其保存到其他驱动器,甚至外部闪存驱动器。我不知道如何获得适当的权限。有什么建议吗?
编辑:好的,我解决了。为了保存它,您必须在路径的末尾添加一个实际的文件名,如下所示:'C:/Users/David/Desktop/test.xlsx'。 这将创建新文件
答案 0 :(得分:1)
您需要写入文件。例如: wb.close() wb.save('C:/Users/David/Desktop/Hello.xlsx') 要么 wb.save(r'C:\Users\David\Desktop\Hello.xlsx')
当您在该文件当前处于打开状态时尝试写入该文件时,也会发生这种情况。
答案 1 :(得分:0)
我有同样的错误....但是看起来我在后台打开了输出文件。我关闭了它,程序运行正常。