从os.popen中拆分结果

时间:2018-06-11 12:11:21

标签: python linux

我使用python3.6自动查找计算机中的某些文件:

import os
criteria = 'something'
file_names = os.popen('find dir -name "*%s*"' % criteria).read()
for file_name in file_names:
   #do something
   pass

问题在于,通过执行.read(),所有包含某些条件的文件名都会连接成一个字符串。 如何获取文件名列表作为输出,以便在'中进行迭代。环? 非常感谢

2 个答案:

答案 0 :(得分:3)

在一般情况下,您希望拆分字符串。 最简单的方法是使用Python的字符串的内置.split()方法。 例如:

>>> ' 1  2   3  '.split()
['1', '2', '3']

有关详细信息,请参阅the documentation

答案 1 :(得分:2)

只需在RuntimeException功能之后添加split(),如下所示:

read()

事情是file_names = os.popen('find dir -name "*%s*"' % criteria).read().split() 函数从输出返回原始字符串,如下所示:

read

在我的情况下,标准为>>> os.popen('find . -name "*%s*"' % criteria).read() './pymp-0kz_4tay\n./pymp-4zfymo3o\n./pymp-k79d3tvz\n./pymp-wq9g900h\n./pymp-v0jvlbzm\n./pymp-lc69tv22\n./pymp-3sqjot2q\n./pymp-fsfv6c3t\n./pymp- 。所以从输出中我清楚地知道我必须将输出分割为pymp,这是由\n方法完成的。

示例输出

split('\n')