Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用python在excel xlsm上写入数组时,Errno 13权限被拒绝_Python_Arrays_Openpyxl_Errno_Xlsm - Fatal编程技术网

使用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")