首页 > 解决方案 > 断言 os.path.isfile 仅适用于完整路径

问题描述

我接到了一项教育任务,在此期间我使用 Python 3.6、Splinter 和 Behave 编写 Gherkin 场景来测试网站。我正在取得一些不错的进展,但我被困在这件小事上。目前,我已成功通过 Ubuntu 中的无头 Chrome 实例下载文件。但是,为了通过场景的最后一步,我需要验证文件是否存在。经过大量搜索,我找到了一种有效的方法,即:

assert os.path.isfile('/home/[USERNAME]/Downloads/file.csv')

但是,为了使此测试与其他计算机更兼容,我希望文件的路径更短更简单。最重要的是,不使用该系统的用户名。

我对这一切都很陌生,所以这很可能是一个愚蠢的问题,但我一直在到处寻找,我根本找不到答案。

标签: pythonsplinter

解决方案


~您可以使用which replaces重写路径/home/[USERNAME]/,因此它将变为~/Downloads/file.csv. os.path.expanduser()然后,您可以按如下方式使用 Python 的函数:

assert os.path.isfile(os.path.expanduser('~/Downloads/file.csv'))

os.path.expanderuser()会自动/home/[USERNAME]/为您展开。


推荐阅读