Python的readFile函数触发FileNotFoundError,同目录文件无法读取求助
解决文件找不到的排查步骤
你的代码逻辑本身没有问题,出现File not found的核心原因大概率是实际运行时的工作目录和你预期的不一致,按以下步骤逐一排查:
1. 先确认当前工作目录
在调用readFile前添加代码,打印当前Python进程的工作路径,验证是否和文件所在目录匹配:
import os print(os.getcwd()) # 输出当前工作路径 WordList = readFile("wordList.txt") print(WordList)
如果输出的路径不是你的代码和wordList.txt所在的文件夹,那问题就出在这里。
2. 用绝对路径直接测试
跳过工作目录的问题,直接使用文件的绝对路径调用函数,验证是否能正常读取:
# Windows系统注意转义反斜杠,或用原始字符串 WordList = readFile(r"C:\你的代码目录\wordList.txt") # Linux/macOS系统直接写绝对路径 WordList = readFile("/home/你的用户名/代码目录/wordList.txt")
如果这样能成功读取,说明确实是工作目录的问题。
3. 修正VS Code的运行工作目录
VS Code默认以当前打开的文件夹根目录作为运行工作目录,如果你打开的是上级文件夹,而代码和文件在子目录里,就会找不到文件:
- 直接打开代码文件所在的文件夹作为VS Code工作区,再运行代码;
- 或者在
.vscode/launch.json中配置cwd参数,强制指定为当前代码文件所在目录:
{ "version": "0.2.0", "configurations": [ { "name": "Python: Current File", "type": "python", "request": "launch", "program": "${file}", "cwd": "${fileDirname}" } ] }
4. 检查文件的真实名称
部分系统会默认隐藏文件扩展名,比如你看到的wordList.txt实际可能是wordList.txt.txt:
- Windows:打开文件资源管理器,开启「显示文件扩展名」选项,查看真实文件名;
- Linux/macOS:在终端用
ls命令查看文件列表,同时注意文件名大小写(这类系统区分大小写,WordList.txt和wordList.txt是两个不同文件)。
5. 检查文件权限(Linux/macOS)
如果是类Unix系统,确保当前用户有该文件的读取权限:
ls -l wordList.txt
如果权限不包含读权限,执行以下命令添加:
chmod +r wordList.txt
内容的提问来源于stack exchange,提问作者IdkWhatMyUsernameShouldBe
相关产品推荐
相关产品推荐

