【发布时间】:2018-05-05 08:14:41
【问题描述】:
我可以使用 OS 库非常轻松地检查文件或文件夹是否存在。 以下两个链接描述了 directoryExistance fileExistance
我正在尝试使用 subprocess 库来做同样的事情
而且,我已经尝试了几种方法
1-status = subprocess.call(['test','-e',<path>]),无论我在路径中传递什么,它总是返回 1。
2- 使用 getstatusoutput,
/bin/sh: 1: : 权限被拒绝
status, result = subprocess.getstatusoutput([<path>]) print(status) print(result)这工作正常,因为如果文件/文件夹存在,状态变量返回 126,而当文件/文件夹不存在时,状态变量返回 127。结果变量也包含消息,但“结果”变量包含消息:权限被拒绝
但第二个解决方案对我来说似乎是一个 hack。他们这样做是更好的方法吗?
【问题讨论】:
-
"/bin/sh: 1: : Permission denied",第二点写错了。
-
现代方式是使用
pathlib。 -
不适用于“~”。在我的 ubuntu 平台上
-
我需要我的路径类似于“~/workspace/datasets”。
-
@glibdud。使用
shell=True仅在命令是字符串而不是列表时才有效,并且需要考虑security considerations。
标签: python subprocess