【问题标题】:assert os.path.isfile only working with full path断言 os.path.isfile 仅适用于完整路径
【发布时间】:2018-11-08 10:42:05
【问题描述】:

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

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

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

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

【问题讨论】:

  • 您是否尝试使用“os.path.realpath(file)”来获取文件的真实路径?

标签: python splinter


【解决方案1】:

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

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

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

【讨论】:

  • 谢谢!我知道我已经非常接近尝试了多个 os.path 选项,但我还没有。像魅力一样工作。
【解决方案2】:

如果您需要获取下载文件夹路径,则可以使用此问题的答案:python - Finding the user's "Downloads" folder

【讨论】:

    猜你喜欢
    • 2011-01-27
    • 1970-01-01
    • 2017-08-28
    • 1970-01-01
    • 1970-01-01
    • 2014-12-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多