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