Python 索引超出范围错误

Python 索引超出范围错误,python,Python,我正在做一个项目,我和我的搭档正在处理同一个文件。所以我创建了一个循环来读取mac或pc的文件 我不知道为什么列表索引超出了范围 import os import pandas path_main = [i for i in (r"C:\Users\charlottelongpre\Desktop", "/Users/username/Desktop") if os.path.exists(i)][0] path_file = path_main + '/' + "DataBaseZenOu

我正在做一个项目,我和我的搭档正在处理同一个文件。所以我创建了一个循环来读取mac或pc的文件

我不知道为什么列表索引超出了范围

import os
import pandas

path_main = [i for i in (r"C:\Users\charlottelongpre\Desktop", "/Users/username/Desktop") if os.path.exists(i)][0]

path_file = path_main + '/' + "DataBaseZenOuStresse_1.xlsx"

stress_df = pandas.read_excel(path_file, sheet_name="REAL_Database_projet_PSY4016")

如果该元组中的路径都不存在,那么外部列表将为空,并且在尝试获取第一个元素时将获得索引器

还请注意,更简洁的方法是使用下一个函数,但这在这里没有帮助,因为您将得到一个StopIteration异常

要获得更健壮的解决方案,可以使用os.path.join方法创建在当前操作系统上工作的文件/目录路径,也可以使用pathlib.path.home获取主目录

例如:

导入操作系统 导入路径库 home\u dir=strpathlib.Path.home main\u path=os.path.joinhome\u dir,桌面 file_name=DataBaseZenOuStresse_1.xlsx file\u path=os.path.joinmain\u路径,文件名 当然,您可能希望添加丢失桌面目录的处理,但至少在这个用例中,这似乎不太可能。您也可以让pandas.read\u excel告诉您文件是否丢失。

也许C:\Users\charlottelongpre\Desktop、/Users/username/Desktop都不存在?您忘记用有用的内容替换用户名了吗?如果path_main是一个空列表,那么它将没有索引[0],请提供预期的值。