-1

我有一个包含一堆文件名的文件,即:

hello.txt  
goodbye.py  
test..pdf  
n3w.world.file.text
...

我试图忽略所有带有多个点的文件名。目前我可以使用以下方法找到所有文件名:

data = ['hello.txt', 'goodbye.py', 'test..pdf', 'n3w.world.file.text']
matches = re.findall('([\w].+)\.(\w+)', data)
print(matches)

但是,这会打印出所有文件名。我怎样才能修改它只打印出来:hello.txtgoodbye.py

4

2 回答 2

3

在这种情况下,正则表达式是矫枉过正的。您可以使用str.count()功能:

data = ['hello.txt', 'goodbye.py', 'test..pdf', 'n3w.world.file.text']

data = [w for w in data if w.count('.') < 2]
print(data)

印刷:

['hello.txt', 'goodbye.py']
于 2019-06-10T20:48:58.893 回答
-2
   data = [i for i in data if '..' not in i]

你可以使用上面的代码

于 2019-06-10T20:49:37.490 回答