断言 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]/
。
如果您需要获取下载文件夹路径,您可以使用此问题的答案:
我接到了一项教育任务,在此期间我编写了 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]/
。
如果您需要获取下载文件夹路径,您可以使用此问题的答案: