在python脚本中使用bash命令时遇到麻烦

时间:2017-08-04 09:50:43

标签: python bash

我在python上尝试此操作:

import os

process="find . -type f -name *.out*.xyz'"
print "the number of xyz files is %s" %os.system(process)

当我从命令行尝试它时它可以工作,但是从python 它返回数字0,当它是4 时。我认为使用os.system肯定存在问题。有什么帮助吗?

2 个答案:

答案 0 :(得分:2)

是的,你得到的是返回代码“0”,意思是“成功完成,没有错误”,而不是标准输出文本输出“4”。

您应该在这里查看输出:Assign output of os.system to a variable and prevent it from being displayed on the screen

在此处了解POSIX退出代码:https://en.wikipedia.org/wiki/Exit_status

答案 1 :(得分:0)

实际上,如果您真的需要Python中的文件数量,请尝试以下方法:

import pathlib
p = pathlib.Path('.')
files = [x for x in p.iterdir() if x.is_file() and x.match('*.csv')]
print("Number of files: {0}".format(len(files)))

更容易,Pythonic,你不需要分叉子进程。