我使用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(),所有包含某些条件的文件名都会连接成一个字符串。 如何获取文件名列表作为输出,以便在'中进行迭代。环? 非常感谢
答案 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')