2

这段代码:

workbook.save(outputf)    
system('open ' + outputf)

在我的 Mac 上运行时生成此错误:

sh: /Users/tylerjw/Desktop/jim_data/August2013_report.xlsx: Permission denied

该文件是使用 openpyxl 创建的。我无法在我的应用程序之外重现错误是一个 tkinter 应用程序,它正在向该文件写入大量数据。

当我在 Windows 中运行类似的代码时,它不会出错,它会使用该文件打开 excel。唯一的区别是没有open命令。

什么情况下会出现这个错误?

4

1 回答 1

3

在我的系统(mac 10.6.8、python2.7.5、gcc 4.2.1)上,以下代码可以正常工作:

from openpyxl import Workbook
from os import system
wb = Workbook()
outputf = 'test.xlsx'
wb.save(outputf) 
# see below *
system('open ' + outputf)

(见评论:我赌输了。错误在代码中的其他地方,与系统无关('open'+whatever))

我敢打赌,您系统上的新文件中的权限有问题。也许你添加(文档

st = os.stat(outputf)
os.chmod(outputf, st.st_mode | stat.stat.S_IRWXU | stat.S_IRWXG | stat.S_IRWXO)

(来自其他链接的输入)

在代码中而不是我的评论中('#见下文*')那么应该可以由每个人和所有东西打开它......

如果它有效,这是一种解决方法。我们的系统有区别,我不知道有什么区别。如果没有,好吧,我没有在我的系统上测试它(因为我的代码没有问题),写一个评论,我可能会玩这些设置,或者其他人有想法。

顺便说一句。:在您文件夹中的终端中:执行 python 代码后,什么输出给出“ls -l excelfilename”?你使用什么编程环境?我通过终端中的“python2.7 pythonscript.py”启动程序。

于 2013-08-24T21:24:22.453 回答