我尝试过滤一些表/数据集格式的日志文件,但.endswith()
和.startswith()
不符合我的要求。我使用匿名函数但需要调整我的Python代码以检查字符串是否包含.jpg
logfilejpg = sc.textFile("/loudacre/logs/*.log").filter(lambda line: line.endswith('.jpg'))
答案 0 :(得分:3)
使用in
:
'.jpg' in 'something.jpg foo'
Out: True
您也可以将它放在lambda表达式中:
lambda line: '.jpg' in line
示例:
list(filter(lambda line: '.jpg' in line, ["foo", "foo.jpg.bar", "bar.jpg"]))
Out: ['foo.jpg.bar', 'bar.jpg']
答案 1 :(得分:0)
获取" .jpg"的索引。从以下开始:
hello = "world.jpg"
print(hello.find(".jpg"))
答案 2 :(得分:0)
您可以通过"分割内部字符串。 " (空间)然后由"。"并在结果数组中取第二个值。当然这取决于你的初始字符串是多少。基本的想法是你可以隔离" .jpg"并使用等于检查。
要验证文件实际上是慢跑,您可以尝试打开它。如果失败,该文件是以太其他格式或损坏,请参阅您获得的例外情况。
答案 3 :(得分:0)
使用str.find()
和len()
,您可以找到子字符串,如下所示:
a_string = 'there is a .jpg here.'
start = a_string.find('.jpg') # The lowest index in a_string where '.jpg' is found
end = start + len('.jpg')
print(a_string[start:end])
# .jpg