#python
#python
Вопрос:
У меня есть файл, скажем abc.txt
, в формате ниже:
: @group2 : ALL
: @grp_xvz : ALL
: @group_abc_app: ALL
: @group_1_abc : ALL
: @group_2_xyz : ALL
: @group_3_def@@nmo_hosts : ALL
Мне нужно выполнить поиск определенных записей и проверить, соответствует ли размер файла abc.txt > 220
: @group_2_xyz : ALL or
: @group_3_def@@nmo_hosts : ALL
and filesize of abc.txt > 220
В bash я могу сделать так
if grep --quiet " [[:blank:]]:[[:blank:]]@group_2_xyz[[:blank:]]*:[[:blank:]]ALL" abc.txt
||
grep --quiet [[:blank:]]:[[:blank:]]@group_3_def[@A-Za-z0-9_][[:blank:]]:[[:blank:]] abc.txt
and
[ du -sb abc.txt | awk '{print $1}' -gt 220 ]; then
..do..something
Как сделать то же самое в python? Я пытался использовать «re.findall», но не уверен, смогу ли я использовать там несколько условий? или если кто-то может предложить лучший способ?
re.findall(r' s*:s*@group_2_xyzs*:s*ALL', open('abc.txt,'r').read())
Заранее спасибо.
Комментарии:
1. Спасибо Ponnarasu за помощь в очистке форматирования. Приветствуется
Ответ №1:
Попробуйте это:
import os, re
match = re.search(
r'^ *: *(@group_2_xyz|@group_3_def@@nmo_hosts) *: *ALL$',
open('abc.txt').read(), re.M
)
print(os.stat('abc.txt').st_size > 220, match is not None)
Комментарии:
1. @bob. Если вы нашли ответ полезным, пожалуйста, подумайте о том, чтобы принять его (т. Е. Нажать на галочку).
2. Спасибо, Эхуморо! Извините, я здесь новичок, поэтому для настройки потребуется некоторое время.