新手开发含RC5加密功能的游戏时遇IndexError错误求助
解决IndexError: List index out of range问题
你的错误出在currentFile.rsplit('.', 1)[1]这部分——当currentFile字符串里没有包含.字符时,rsplit('.',1)只会返回一个只有单个元素的列表,这时去访问索引[1]就会触发索引越界错误。
几种安全的解决方法:
方法1:使用Python标准库的os.path.splitext(兼容所有Python版本)
import os # splitext会返回(文件名, 后缀)的元组,无后缀时后缀为空字符串 file_ext = os.path.splitext(currentFile)[1].lower()
方法2:用现代Python的pathlib模块(推荐)
from pathlib import Path # suffix属性直接获取文件后缀,无后缀时返回空字符串 file_ext = Path(currentFile).suffix.lower()
方法3:手动判断分割结果长度
如果不想引入库,也可以先检查分割后的列表长度:
parts = currentFile.rsplit('.', 1) if len(parts) > 1: file_ext = parts[1].lower() else: # 这里根据你的业务需求处理无后缀的情况,比如设默认值或提示 file_ext = "" # 或者 raise ValueError("文件路径没有后缀")
你可以根据自己的代码环境选择合适的方法,核心是先确保分割后存在索引1的元素,再去访问它。
内容的提问来源于stack exchange,提问作者chungtrz
相关产品推荐
相关产品推荐

