how to store return value and NOT command call status using python script?
我试图使用python脚本测试hadoop中是否存在路径。
如果路径存在,上面将返回0,如果路径不存在,则返回1。 下面是我的python脚本:
1 2 | if subprocess.call("hdfs dfs -test -e /path/to/file", shell = True) == 0: # do something |
上面的代码不起作用,子进程总是0 b / c它检查命令状态而不是返回值。 我找到了这篇文章,但似乎没有奏效。 我也试过存储echo
以下是我的完整代码:
1 2 3 4 5 6 7 8 9 10 11 12 | #!/usr/bin/env python import subprocess HDFS ="hdfs dfs" def run_commands(func, path): subprocess.call(HDFS + func + path, shell = True) def path_exist(path): return True if run_commands("-test -e", path) == 0 else False path_exist("/path/to/file") |
将
1 2 | def run_commands(func, path): return subprocess.call(HDFS + func + path, shell = True) |
因此,