Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/29.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文件_Python_Excel_Macos_Launch - Fatal编程技术网

使用Python启动Excel文件

使用Python启动Excel文件,python,excel,macos,launch,Python,Excel,Macos,Launch,当我尝试 os.system(“打开”+'myfile.xlsx') 我得到了输出'0' 同样,尝试 os.system(“启动excel.exe myfilepath”) 给出结果32512 我已经导入了操作系统和系统,我在mac上。我怎样才能更改它,使它真正启动excel文件?出于好奇,它打印出来的数字是什么意思 谢谢 如果只想打开excel应用程序,可以使用子流程: import subprocess subprocess.check_call(['open', '-a', 'Micros

当我尝试
os.system(“打开”+'myfile.xlsx')

我得到了输出
'0'

同样,尝试
os.system(“启动excel.exe myfilepath”)

给出结果
32512

我已经导入了操作系统和系统,我在mac上。我怎样才能更改它,使它真正启动excel文件?出于好奇,它打印出来的数字是什么意思


谢谢

如果只想打开excel应用程序,可以使用子流程:

import subprocess
subprocess.check_call(['open', '-a', 'Microsoft Excel'])
您还可以使用操作系统打开特定文件:

import os
os.system("open -a 'path/Microsoft Excel.app' 'path/file.xlsx'")
另一方面,如果您想在python中打开一个excel文件并对其进行修改,那么有许多软件包可以用作xlsxwriter、xlutils和openpyxl,我更喜欢后者

另请注意,如果您在mac上,excel应用程序不是
.exe

这两行

import os
os.system("start EXCEL.EXE file.xlsx")

假设file.xlsx位于当前目录中

> P.>我不知道Mac OS,但是如果Windows操作系统是这样的,并且提供了微软Windows的正确安装,那么请考虑使用:

import os
os.system('start "excel" "C:\\path\\to\\myfile.xlsx"')

双引号
对于
excel
C:\\path\\to\\myfile.xlsx
非常重要(其中
C
仅表示文件系统内分区的字母,可能会被
D
E
等替换),在Windows 10上,
os.system()

中的整个字符串需要
单引号,这对我很有用:

import os
full_path_to_file = "C:\blah\blah\filename.xlsx"
os.system(full_path_to_file)
只要您有打开文件的权限,在命令提示符下复制粘贴文件的任何完整路径(或将其传递给os.system())似乎都可以工作。 我想这仅在选择Excel作为.xlsx扩展名的默认应用程序时有效。

如中所示:

导入操作系统
file=“C:\\Documents\\file.xlsx”
os.startfile(文件)

它使用默认应用程序打开文件。

这些是退出代码<代码>0表示成功,任何其他数字表示失败。通常程序的
man
页面会告诉您故障代码列表及其含义。
a
参数的作用是什么?谢谢你,只需抬起头!xlsxwriter可以覆盖Excel文件,而OpenPyxl不能覆盖。最好的方法是将文件复制到另一个文件夹中。在mac中,
os.system(“打开-a'Microsoft Excel'path/file.xlsx'”)
这也有效:
子进程。检查调用(['open','-a',Microsoft Excel','path/file.xlsx'])
一个调整:对于带有嵌入空格的文件名,用单引号将整个参数括起来,并在文件名周围加双引号(例如“start EXCEL.EXE”C:/temp/new file.csv”。额外的空格不会造成伤害,并且可以防止在Python 3.x(可能还有2.x)上运行命令时参数被“合并”您应该使用“/”作为文件分隔符,而不是“\”——即使在Windows上也是如此。Python将进行转换,因此您不需要在路径中使用双反斜杠(这是防止第一个字符被解释为控制字符所必需的,例如“\n”=换行符)。感谢添加用户1459519,这很有帮助。值得注意的是
os.system('start excel.exe file.xlsx')
将从您的文档文件夹和操作系统中打开同名文件('start“excel.exe”“file.xlsx'))
(注意额外的引号)将从代码所在的同一文件夹中打开文件。在我这方面进行测试,我不确定是否会发生这种情况,但可能是一个重要的区别。虽然此代码可能会解决这个问题,但如何以及为什么解决这个问题将真正有助于提高您的帖子质量,并可能导致更多的投票。请记住,您正在回答问题对未来读者的评价,而不仅仅是现在提问的人。请在回答中添加解释,并说明适用的限制和假设。
import os
full_path_to_file = "C:\blah\blah\filename.xlsx"
os.system(full_path_to_file)