我的Python应用程序包含一个名为Tests的子文件夹,我用它来运行单元测试。我所有的文件都在父文件夹中,我称之为App。Tests文件夹包含一个测试.py文件。应用程序文件夹包含应用程序类型文件和文件文件.txt文本文件。你知道吗
在我的测试.py文件,我可以这样导入:
import sys
sys.path.append("PATH_TO_PARENT_DIR")
说我的应用程序类型文件包含以下内容:
class Stuff():
def do_stuff():
with open("file.txt") as f:
pass
现在如果我跑测试.py,我得到以下错误:
FileNotFoundError: [Errno 2] No such file or directory: 'file.txt'
我怎样才能解决这个问题?非常感谢!你知道吗
open
函数在文件夹中查找与调用open
函数的脚本相同的文件。因此,您的test.py
在tests文件夹中,而不是app文件夹中。您需要添加文件的完整路径。你知道吗或者将
test.py
文件移动到与text.txt
相同的文件夹中假设文件与脚本位于同一文件夹中:
说明:
__file__
是脚本的路径os.path.dirname
get是脚本所在的目录os.path.abspath
使该路径成为绝对路径而不是相对路径(以防相对路径弄乱脚本,这是一种很好的做法)然后我们需要做的就是将
parent_dir
与文件结合起来,我们使用os.path.join
。你知道吗阅读
os.path
方法的文档:https://docs.python.org/3/library/os.path.html如果这有帮助,可以这样编写此代码的更明确版本:
相关问题 更多 >
编程相关推荐