断言 os.path.isfile 仅适用于完整路径

assert os.path.isfile only working with full path

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

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

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

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

您可以使用替换 /home/[USERNAME]/~ 重写路径,因此它会变成 ~/Downloads/file.csv。然后,您可以使用 Python 的 os.path.expanduser() 函数,如下所示:

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

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

如果您需要获取下载文件夹路径,您可以使用此问题的答案: