Pandas 文件导入 if 语句问题

Pandas file import if statement issue

我的 if 语句在尝试将我的列表导入 pandas DF 时遇到问题。

file_extension[1] 变量从输入文件中获取文件名,并根据文件扩展名尝试输入数据库。我正在测试的文件有一个 csv 扩展名,我可以从我添加的打印语句中看到这一点。但是,我不断收到一条错误消息,它试图在 read excel if 语句下导入 csv 文件,并且显然在给定它的 CSV 文件的情况下不起作用。 关于为什么会发生这种情况的任何想法?鉴于扩展名是 csv,它应该将其导入为 csv...

仅供参考,这是我收到的错误消息 - ValueError:无法确定 Excel 文件格式,您必须手动指定引擎。

代码摘录如下:

        file_extension = filename.split(".", 1)

        print(file_extension[1])

        if file_extension[1].lower() == 'tsv':
            df = pd.read_csv(filename, sep='\t', dtype={'Account Code': 'string', 'Net': 'float'},
                             low_memory=False)  # import TSV

        elif file_extension[1].lower() == 'xlsx' or 'xls' or 'xlsm':
            df = pd.read_excel(filename, sheet_name=0, na_filter=False, dtype={'Account Code': 'string', 'Net': 'float'})
            print('Imported as excel')

        elif file_extension[1].lower() == 'csv':
            df = pd.read_csv(filename, sep=',', dtype={'Account Code': 'string', 'Net': 'float'}, low_memory=False)
        else:
            print('File type not supported')

提前感谢您的帮助!

你在 elif 语句中的条件是错误的。你应该更新行

elif file_extension[1].lower() == 'xlsx' or 'xls' or 'xlsm':

elif file_extension[1].lower() in ('xlsx', 'xls' , 'xlsm'):