如何用Python打开Excel文件来显示其内容?

时间:2014-01-17 16:55:47

标签: python excel

我正在尝试用Python打开一个excel文件来显示其中满足的数据,就像我们用鼠标双击它一样。

我已经搜索了一段时间,但似乎所有页面都在讨论如何使用代码读取和编写excel文件,而不是向用户显示内容。

那么,我的问题有什么解决方案吗?

非常感谢。

2 个答案:

答案 0 :(得分:14)

要在其默认应用程序中简单地打开文件,您可以使用

import os
file = "C:\\Documents\\file.txt"
os.startfile(file)

这将在与文件扩展名相关联的任何应用程序中打开文件。

然而,有一些缺点,因此如果您想对文件进行更高级的处理(例如稍后关闭),则需要更高级的方法。您可以尝试使用my question here的解决方案,其中显示如何使用subprocess.popen()跟踪文件,然后关闭它。这是一般的想法:

>>> import psutil
>>> import subprocess
>>> doc = subprocess.Popen(["start", "/WAIT", "file.pdf"], shell=True)   #Stores the open file as doc
>>> doc.poll()                                                           #Shows that the process still exists (will return 0 if the /WAIT argument is excluded from previous line)
>>> psutil.Process(doc.pid).get_children()[0].kill()                     #Kills the process
>>> doc.poll()                                                           #Shows that the process has been killed
0
>>> 

这会保留您作为doc对象打开的文件,以便以后可以轻松关闭

答案 1 :(得分:1)

为了补充wnnmaw的答案,subprocess.popen支持上下文管理和'with'运算符,它提供了一种漂亮,干净,Pythonic的方式来处理文件的打开和关闭。基本上,没有必要用这种方法显式关闭文件。

import psutil
import subprocess
with subprocess.Popen(["start", "/WAIT", "file.pdf"], shell=True) as doc:
    # use 'doc' here just as you would the file itself
    doc.poll()
    doStuff(doc)
    for line in readline(doc):
        etc, etc...

# then just continue with the rest of your code.

'with'语句将自动处理您的开启和关闭,并且它很好且易于阅读。您必须记住的一个警告是,这一次只适用于一个文件。如果您的功能一次处理多个文件,最好手动处理打开/关闭。

如果您只想将控制权传递给Excel(完成后依赖最终用户在Excel中关闭文件),请参阅wnnmaw答案的第一部分。