在 Linux 的 python 脚本中打开并显示文件

Open and display a file within a python script in Linux

我想要 open/display 一个 excel 文件,我将其作为 python 处理的一部分保存在 python 脚本中。

代码的保存部分工作正常(即保存成功,我打开并从 Nautilus 查看 window),但无论我如何尝试以编程方式打开都会抛出错误.

我一直在使用 subprocess 包中的 Popen 方法:

from subprocess import Popen
Popen('./temp/testtest.xlsx')

给出:

PermissionError: [Errno 13] Permission denied: './temp/testtest.xlsx'

我随后尝试更改文件权限:

import os
from subprocess import Popen

os.chmod('./temp/testtest.xlsx',0o777)
Popen('./temp/testtest.xlsx')

给出了:

Out[127]: <subprocess.Popen at 0x7faeb22a4b00>invalid file (bad magic number): Exec format error

并根据更好的判断尝试 运行 作为 shell:

from subprocess import Popen
Popen('./temp/testtest.xlsx', shell=True)

给出了:

invalid file (bad magic number): Exec format error 
Out[129]: <subprocess.Popen at 0x7faeb22a46a0>

我也尝试过将文件保存在不同的目录中,但出现类似的错误。如果重要的话,我正在使用 openpyxl 模块来创建和保存 excel 文件,但即使它是我手动创建的 excel 文件,我也会遇到同样的问题。

Popen() 的参数必须是 shell 命令才能打开文件。如果您使用的是 LibreOffice,则该程序是 localc;如果您使用的是 OpenOffice,则为 oocalc.

from subprocess import Popen
import os
f = os.path.join('temp', filename)
Popen(['localc', f])

这里有很多选择。您可以安装 libreoffice,这是一个开源办公套件,相当不错,您应该可以直接使用 ooffice —-calc “filename” 打开该文件。如果你真的想留在 python 你可以将数据保存到一个 .csv 文件,并且 pythons anaconda 发行版有 pandas 库,你可以将 .csv 读入数据框相当容易。 import pandas as pd 然后 pd.read_csv(“File_name.csv”) returns给你一个dataframe,但是记得要import osos.chdir(r“/path/to/data”)。 从那时起 pandas 让您可以轻松访问数据以进行绘图或操作。

数据框的所有功能都在这里,看看合不合你的胃口。

Python Pandas DataFrame