Python运行代码时无法读取子文件夹内的文本文件该如何解决?
解决文件路径找不到的问题
嘿,别担心,完全不用把所有文件都堆在根目录里!这个问题的核心是文件路径的指向错误——当你在Game目录运行代码时,Python默认会从当前工作目录(也就是Game根目录)查找文件,所以直接写"Note8.txt"自然找不到Text子文件夹里的文件。
给你几个简单的解决方案,选适合你的就行:
1. 使用相对路径(最直接推荐)
直接在文件名前加上子文件夹的路径,告诉Python去Text文件夹里找这个文件。代码改成这样:
with open("Text/Note8.txt", 'r') as Note8txt: Note8 = Note8txt.read() # 顺便提一句:你原来的代码里`read(Note8txt.read())`是错误的写法,应该直接调用文件对象的read()方法
Windows系统也可以用反斜杠"Text\\Note8.txt",但正斜杠/是跨平台的,在Windows和Linux/macOS都能正常工作,更推荐。
2. 将子文件夹添加到Python的搜索路径
如果你有很多文件都在Text文件夹里,不想每次都写路径,可以用sys模块把Text文件夹加入Python的搜索路径:
import sys sys.path.append("Text") # 把Text文件夹添加到Python的文件搜索列表 with open("Note8.txt", 'r') as Note8txt: Note8 = Note8txt.read()
这样之后,你直接写文件名就能找到Text里的文件了。
3. 绝对路径(不推荐,灵活性差)
你也可以写文件的绝对路径,比如"C:/Users/xxx/Game/Text/Note8.txt"(Windows)或者"/home/xxx/Game/Text/Note8.txt"(Linux/macOS),但这种方法一旦你移动了Game目录的位置,代码就会失效,所以不推荐日常使用。
总之,合理用子文件夹整理文件是非常好的习惯,完全没必要都放到根目录,只要指定正确的文件路径就能解决问题啦!
内容的提问来源于stack exchange,提问作者H Gaming




