Python 损坏的可能性:使用Pandas读取Excel文件

Python 损坏的可能性:使用Pandas读取Excel文件,python,excel,pandas,Python,Excel,Pandas,我们正处于产品的设计阶段。其思想是,代码将把Excel中的值列表读取到SQL中 要求如下: import pandas as pd from pandas import ExcelWriter from pandas import ExcelFile df = pd.read_excel('File.xlsx', sheetname='Sheet1') """Some code to write df in to SQL""" 工作簿可由程序外的多个

我们正处于产品的设计阶段。其思想是,代码将把Excel中的值列表读取到SQL中

要求如下:

    import pandas as pd
    from pandas import ExcelWriter
    from pandas import ExcelFile

    df = pd.read_excel('File.xlsx', sheetname='Sheet1')

    """Some code to write df in to SQL"""
  • 工作簿可由程序外的多个用户访问

  • 如果程序运行时发生错误,工作簿必须保持可访问(即未损坏)

  • 当文件中没有用户时,程序将被执行

  • 目前,我们正在考虑以如下简单方式使用熊猫:

        import pandas as pd
        from pandas import ExcelWriter
        from pandas import ExcelFile
    
        df = pd.read_excel('File.xlsx', sheetname='Sheet1')
    
        """Some code to write df in to SQL"""
    
    如果此代码在Excel仍然打开的情况下脱机,文件是否有可能在我的程序中的某个位置被锁定或损坏

    为了澄清,我们设想了一些灾难性的事情,比如服务器崩溃或断电

    四处搜索,但找不到类似问题,如有必要,请重定向我。
    我还在这里阅读了Pandas read_excel文档:

    根据您提供的代码,从我对Pandas和xlrd代码的阅读来看,给定的文件将仅以读取模式打开。就我所知,这应该意味着,你所做的事情不会比以任何其他方式阅读文件更危险——毕竟,你必须阅读文件才能使用它

    如果这不能让您充分放心,您可以通过将
    BytesIO
    对象而不是路径传递给Panda,从而最大限度地缩短文件打开的时间,更重要的是,不要将文件暴露于外部代码:

    导入io
    作为pd进口熊猫
    data=io.BytesIO(打开('File.xlsx','rb').read())
    df=pd.read_excel(数据,sheetname='Sheet1')
    #等
    

    这样,您的文件将只在读入内存所需的时间内打开,pandas和xlrd将只处理数据的一个副本。

    文件将只在
    read\u excel
    调用返回之前打开。如果您的代码只读取文件,则不会损坏它。如果您计划写入该文件,则需要采取预防措施!被选为答案。如果有人能提供更多的文档,那就太好了。