Моя строка в Python отделена \ n символом новой строки в конце:
mystring = "owner: uid=rocdsc,ou=People,dc=fcd,dc=test,dc=com
member: uid=absylor12,ou=people,dc=fcd,dc=test,dc=com
member: uid=amslsmith,ou=people,dc=fcd,dc=test,dc=com
member: uid=amis,ou=people,dc=fcd,dc=test,dc=com
member: uid=null,ou=people,dc=fcd,dc=test,dc=com""
Есть ли лучший способ для создания массива UID только следующим образом:
[rocdsc, absylor12, amslsmith, amis]
Без
значение NULL
В списке массивов.
Я старался:
uids= [name.strip() for name in mystring .split("\n")]
if len(uids)>0:
for index in range(len(uids))
#print 'Current UIDs:', uids[index].split(":")
uids[0] = uids[0].split("=")[1].strip()
print uids
2 ответа
Если вы не пробовали регулярные выражения:
import re
r = re.compile(r'uid=(\w+)')
r.findall(mystring)
Если вы хотите удалить ноль, вы можете filter(lambda x: x != 'null', r.findall(mystring))
(еще одна итерация)
И это регулярное выражение работает, но также удалит все идентификаторы, начинающиеся со слова null
re.compile(r'uid=((?!null)\w+)').findall(mystring)
#!python2
import re
mystring = "owner: uid=rocdsc,ou=People,dc=fcd,dc=test,dc=com, member: uid=absylor12,ou=people,dc=fcd,dc=test,dc=com, member: uid=amslsmith,ou=people,dc=fcd,dc=test,dc=com, member: uid=amis,ou=people,dc=fcd,dc=test,dc=com, member:, uid=null,ou=people,dc=fcd,dc=test,dc=com"
# pattern definition
p = 'uid='
# holds user names
users = []
# split string on a space or a comma, find user id, append to list
for item in re.split(' |,|', mystring):
if item.startswith(p):
users.append(item.replace(p, ''))
print users
Похожие вопросы
Новые вопросы
python
Python - это многопарадигмальный, динамически типизированный, многоцелевой язык программирования. Он разработан для быстрого изучения, понимания и использования, а также для обеспечения чистого и единообразного синтаксиса. Обратите внимание, что Python 2 официально не поддерживается с 01.01.2020. Тем не менее, для вопросов о Python, связанных с версией, добавьте тег [python-2.7] или [python-3.x]. При использовании варианта Python (например, Jython, PyPy) или библиотеки (например, Pandas и NumPy) включите его в теги.