【问题标题】:Python: How to error protect reading a csv/xlsx file with pandasPython:如何使用 pandas 错误保护读取 csv/xlsx 文件
【发布时间】:2021-03-06 13:53:25
【问题描述】:

刚接触 Python 和 pandas。我喜欢 pandas,因为就我目前的需要而言,它易于读取和写入 Excel 表格。

但是我喜欢尝试阅读,就像我用于“普通”文件的以下代码一样。

filename = "./_csv/Orders.xlsx"
_sheetname = "Orders"
try:
 with open(filename, 'r') as f:
  content = f.read()
  if not content:
     print("no data in file " + fileName)
     #do create a new datagram
  with open(fileName, 'w') as outp:
     # add more content
     add_more_content()
     outp.write(content)
except IOError as e:
    print("I/O error({0}): {1}".format(e.errno, e.strerror))
except:
    print("Unexpected error:", sys.exc_info()[0])

但我想在使用 pandas 打开 csv 或 xlsx 文件时使用类似的东西。

result = pandas.read_excel("./_csv/Orders.xlsx", sheet_name="Orders",  header=None)

我应该如何继续尝试和使用?

filename = "./_csv/Orders.xlsx"
_sheetname = "Orders"
try
  with ?? pandas.read_excel(filename, sheet_name=_sheetname,  header=None) as ???
   add_more_content()
   #and save it.
except IOError as e:
  print("I/O error({0}): {1}".format(e.errno, e.strerror))
except:
  print("Unexpected error:", sys.exc_info()[0])

通过我所做的一切尝试,我得到“意外错误:”。

目前,如果文件存在以及是否有内容,我会检查类似于第一个顶级示例代码的内容,但是当我必须读取 400Mb 的数据时当然会很昂贵。

我在 Pandas 文档中看到没有样本或任何关于此的注释。 有什么建议吗?

【问题讨论】:

    标签: python excel pandas


    【解决方案1】:

    这就是你的做法:

    import pandas as pd
    
    filename = "./_csv/Orders.xlsx"
    _sheetname = "Orders"
    
    try:
        df= pd.read_excel(filename, sheet_name=_sheetname,  header=None)
    except FileNotFoundError as e:
        print("FileNotFoundError({0}): {1}".format(e.errno, e.strerror))
    except pd.errors.EmptyDataError as e:
        print(e)
    

    【讨论】:

    • 非常感谢,但是我如何将它与'with'一起使用,因为我想在'with'处理程序中处理和添加更多数据。 (顺便说一句,我确实添加了两行来更好地解释它。)
    • 您不能在 pandas 中使用 'with'。您可以通过首先使用 pandas 读取和捕获错误,然后将更多数据附加到数据帧,最后将数据帧写回文件来轻松实现您想要做的事情。
    猜你喜欢
    • 2016-12-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-22
    • 2020-01-29
    • 1970-01-01
    • 2022-11-03
    • 2022-01-25
    相关资源
    最近更新 更多