使用python在excel xlsm上写入数组时,Errno 13权限被拒绝
我试图通过下面的公式将协方差矩阵粘贴到现有的使用python在excel xlsm上写入数组时,Errno 13权限被拒绝,python,arrays,openpyxl,errno,xlsm,Python,Arrays,Openpyxl,Errno,Xlsm,我试图通过下面的公式将协方差矩阵粘贴到现有的xlsm文件上,但它不起作用。Cov矩阵是一个数组。你能帮我吗 Error I get is: [Errno 13] Permission denied: 'C:\\Users\\gm\\AppData\\Local\\Continuum\\anaconda3\\Files for Python\\Book2.xlsm' shrunk_covariance = array([[0.44067332, 0.16161585], [0.16161585,
xlsm
文件上,但它不起作用。Cov矩阵是一个数组。你能帮我吗
Error I get is: [Errno 13] Permission denied: 'C:\\Users\\gm\\AppData\\Local\\Continuum\\anaconda3\\Files for Python\\Book2.xlsm'
shrunk_covariance = array([[0.44067332, 0.16161585], [0.16161585, 0.80226294]])
创建协方差矩阵的代码(您可能不需要查看它,但为了完整起见,这里是):
不起作用的代码:
import openpyxl
from openpyxl import load_workbook
wb = load_workbook(r"C:\Users\gm\AppData\Local\Continuum\anaconda3\Files for Python\Book2.xlsm", keep_vba = True)
# grab the active worksheet
ws = wb['Shrunk_CovLast']
# Data can be assigned directly to cells
ws.cell(row=1,column=1).value = print(shrunk_covariance)
# Save the file
wb.save(r"C:\Users\gm\AppData\Local\Continuum\anaconda3\Files for Python\Book2.xlsm")
您可能没有文件
Book2.xlsm
的写入权限;您可以保存到其他文件名,或修改文件权限。要了解您试图保存的文件的权限,请在unix系统中尝试ls-l filename
(其中filename是您的文件名),您可以使用chmod u+w filename
更改权限。在windows I blv上。您需要以管理员身份登录并右键单击文件以修改权限;要查看权限,您不需要是管理员 您必须先关闭在其他程序中打开的文件,然后才能写入这些文件。当您打开以前生成的文件并且python无法写入该文件时,通常会弹出此错误。这一点很好。我关闭了文件,代码顺利运行并保存了文件。问题是当我打开文件时,里面什么都没有。当我将代码更改为将“1”写入第一个单元格时,它会工作,而如果我保持“打印(收缩协方差)”则文件中不会写入任何内容。问题的可能重复之处在于文件是打开的,而不是没有指定路径(如charlie Clark建议的另一个问题)。现在的问题是,我试图在excel文件中写入的数组没有被写入
import openpyxl
from openpyxl import load_workbook
wb = load_workbook(r"C:\Users\gm\AppData\Local\Continuum\anaconda3\Files for Python\Book2.xlsm", keep_vba = True)
# grab the active worksheet
ws = wb['Shrunk_CovLast']
# Data can be assigned directly to cells
ws.cell(row=1,column=1).value = print(shrunk_covariance)
# Save the file
wb.save(r"C:\Users\gm\AppData\Local\Continuum\anaconda3\Files for Python\Book2.xlsm")