使用熊猫read_excel从标准输入中读取

时间:2019-06-05 13:49:05

标签: python excel pandas dataframe stdin

注意:我已经按照以下方法解决了这个问题:

我可以使用to_csv在python / pandas中写入标准输出。像这样的东西工作正常:

final_df.to_csv(sys.stdout, index=False)

我想读取一个实际的excel文件(而不是csv)。我想输出CSV,但输入xlsx。我有这个文件

bls_df = pd.read_excel(sys.stdin, sheet_name="MSA_dl", index_col=None)

但这似乎不起作用。是否可以做我正在尝试的事情,如果可以,怎么做?

注意:

  1. 实际输入文件是zip文件https://www.bls.gov/oes/special.requests/oesm18ma.zip中的“ MSA_M2018_dl.xlsx”。

我这样下载并提取数据文件:

curl -o oesm18ma.zip'https://www.bls.gov/oes/special.requests/oesm18ma.zip'
7z x oesm18ma.zip
  1. 我已经用脚本test01.py解决了以下问题,该脚本从stdin读取并写入stdout。注意在read_excel()调用中使用 sys.stdin.buffer

    导入系统 导入操作系统 将熊猫作为pd导入

    BLS_DF = pd.read_excel(sys.stdin.buffer,sheet_name =“ MSA_dl”,index_col = None)

    BLS_DF.to_csv(sys.stdout,index = False)

  2. 我将其调用为:

    cat MSA_M2018_dl.xlsx | python3 test01.py

  3. 这是一个小型测试程序,用于在消除复杂性的同时说明该想法。这不是我正在处理的实际程序。

1 个答案:

答案 0 :(得分:1)

根据this的答案,可能是:

compile-time error