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 + '/' + "DataBaseZenOuStresse_1.xlsx"
stress_df = pandas.read_excel(path_file, sheet_name="REAL_Database_projet_PSY4016")
解决方案
如果该元组中的任何路径都不存在,则外部列表将为空,并且您将IndexError
在尝试获取第一个元素时得到一个。
另请注意,更简洁的方法是使用该next
函数(docs),但这在这里无济于事,因为您会得到一个StopIteration
异常。
对于更强大的解决方案,您可以使用该os.path.join
方法创建适用于当前操作系统的文件/目录路径,并且可以使用它pathlib.Path.home()
来获取主目录。
例如:
import os
import pathlib
home_dir = str(pathlib.Path.home())
main_path = os.path.join(home_dir, "Desktop")
file_name = "DataBaseZenOuStresse_1.xlsx"
file_path = os.path.join(main_path, file_name)
当然,您可能想要添加对丢失"Desktop"
目录的处理,但至少对于这个用例来说,这似乎不太可能。您也可以pandas.read_excel
告诉您文件是否丢失。
推荐阅读
- react-native - 努力在 React Expo 项目中设置 nativebase
- javascript - 如何通过 nodeJS 更新 mongoDB 中的对象?
- jahia - 基于 Apache-Unomi 中的 2 个属性合并配置文件
- c - c语言密码检查器
- powerbi-embedded - 0x800a138f - JavaScript 运行时错误:无法在 powerbi.js 和 powerbi.min.js 中获取未定义或空引用的属性“getRandomValues”
- javascript - 从 Firestore 读取的谷歌云函数的变化无常的执行时间
- c++ - 为什么 `clang++ -fuse-ld=lld main.cpp` 不起作用?
- java - 单击电子邮件中的链接时如何生成不记名令牌
- c# - 在 UWP 中使用 RatingControl 时如何让用户选择半星?
- angular - 按键处理程序慢