以下简单脚本找不到我在当前目录中的文件名“We are one”。我在这里缺少什么?
非常感谢。
import re
import os
limit_type = re.compile('We are one|foo\.txt')
#Output should have 1 file named "We are one"
output = os.system("ls -1")
output = str(output).split()
for line in output:
if limit_type.search(line, re.M|re.I):
print "Found it %s" % range_type
exit(0)
print "Not Found it!"
答案 0 :(得分:1)
有几件事:
以下内容应该有效
import re
from subprocess import Popen, PIPE
limit_type = re.compile(r'We are one|foo\.txt')
# Run ls -1 and store stdout output
output = Popen(["ls", "-1"], stdout=PIPE).communicate()[0]
output = str(output).split('\n')
print output
for line in output:
if limit_type.search(line):
print "Found it: %s" % line
exit(0)
print "Not Found it!"
答案 1 :(得分:0)
将正则表达式更改为re.compile(r'We are (:?(:?one)|(:?foo))\.txt')
。
打开括号后的:?
表示该组未捕获。
正如jonrsharpe所提到的,最好使用glob
模块,而不是将ls
传递给os.system
。但你可以自由地做你想做的事。