Разбор файла, содержащего имена файлов и игнорирование записей с несколькими точечными символами? - PullRequest
0 голосов
/ 10 июня 2019

У меня есть файл, который содержит несколько имен файлов, т. Е .:

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.txt и goodbye.py

Ответы [ 2 ]

3 голосов
/ 10 июня 2019

Regex в этом случае является излишним.Вы можете использовать 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']
0 голосов
/ 10 июня 2019
   data = [i for i in data if '..' not in i]

Вы можете использовать вышеуказанный код

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...