【问题标题】:I would like to check if an incoming file (the imported file) is a .csv or .xls or .xlxs in python我想检查传入文件(导入的文件)是否是 python 中的 .csv 或 .xls 或 .xlxs
【发布时间】:2019-10-15 00:29:27
【问题描述】:

我的问题陈述是查找导入的文件是熊猫中的CSV 还是EXCEL 文件。输入将从命令行以 sys.argv[1] 的形式给出,其中 sys.argv[1] 是 'D:/Users/abc'

当路径和文件名在命令行中作为参数给出时,我必须检查我的脚本内部是否 sys.argv[1] 是 CSV 或 EXCEL 文件

eg: python myscript.py D:/Users/abc [abc为文件名]

这应该说明文件是 CSV 还是 EXCEL

我尝试参考下面链接中的答案,但找不到我要找的确切答案!

How to check the uploaded file is csv or xls in python?

任何帮助将不胜感激

【问题讨论】:

  • Checking file extension的可能重复
  • 您必须在这里更好地描述您的问题。到底出了什么问题?尝试添加一个示例,以便人们了解问题所在

标签: python excel pandas csv


【解决方案1】:

试试

import os


ExcelFile = request.FILES['your_file_name']
ext = os.path.splitext(ExcelFile.name)[-1].lower()

print(ext)

现在您可以将 ext 与 .csv、.xls、.xlsx 等进行比较...

if 语句

if ext=='.xlsx':
    #do something

elif ext=='.xls':
    #do something

else:
    #The uploaded file is not the required format

【讨论】:

    【解决方案2】:

    由于您以文件名“abc”为例,我假设您无法根据扩展名决定文件类型。有很多方法可以在文件头中查找魔术字符串,但很难做到万无一失。

    但是,it is easier to ask for forgiveness than permission。所以你为什么不直接假设它是一个excel文件,尝试用pd.read_excel读取它,如果失败,用pd.read_csv读取它:

    import pandas as pd
    import sys
    try:
        df = pd.read_excel(sys.argv[1])
        filetype = 'EXCEL'
    except Exception:
        df = pd.read_csv(sys.argv[1])
        filetype = 'CSV'
    print(filetype)
    

    【讨论】:

      猜你喜欢
      • 2020-01-14
      • 2014-06-24
      • 2011-12-05
      • 2013-10-25
      • 1970-01-01
      • 1970-01-01
      • 2012-08-22
      • 2017-07-21
      • 1970-01-01
      相关资源
      最近更新 更多