首先,我使用python 2.7。Python解析表數據到一個數組
我想實現的目標是將表數據從活動目錄查找中分離到數組中的「名字姓氏」項中,我可以稍後將其與不同的數組進行比較,並查看列表中的哪些用戶不匹配。
我運行dsquery group domainroot -name groupname | dsget group -members | dsget user -fn -ln
,其輸出列表作爲這樣:
fn ln Peter Brill Cliff Lach Michael Tsu Ashraf Shah Greg Coultas Yi Li Brad Black Kevin Schulte Raymond Masters (Admin) James Rapp Allison Wurst Benjamin Hammel Edgar Cuevas Vlad Dorovic (Admin) Will Wang dsget succeeded
通知該列表之前和每一個數據集之後具有兩個空間。
的代碼我使用目前:
userarray = []
p = Popen(["cmd.exe"], stdin=PIPE, stdout=PIPE)
p.stdin.write("dsquery group domainroot -name groupname | dsget group -members | dsget user -fn -ln\n")
p.stdin.write("exit\n")
processStdout = p.stdout.read().replace("\r\n", "").strip("")[266:]
cutWhitespace = ' '.join(processStdout.split()).split("dsget")[0]
processSplit = re.findall('[A-Z][^A-Z]*', cutWhitespace)
userarray.append(processSplit)
print userarray
我的問題是,當我分裂的空白,並嘗試重新分組到「姓」,當它擊中在列表中的行有(管理員)分組會被拋棄,因爲有第三個字段。這裏是我的意思的一個樣本:
['Brad ', 'Black ', 'Kevin ', 'Schulte ', 'Raymond ', 'Masters (', 'Admin) ', 'James ', 'Rapp ', 'Allison ', 'Wurst ',
我將不勝感激關於如何更好或正確地進行分組的任何建議。謝謝!
快速解決方法是刪除行中括號旁邊的空白,然後拆分,然後重新組。但njzk2s的答案是更好! – sdemurjian
看起來線條可以按位置分析。使用切片來獲得前20個字符,左右修剪,然後抓取過去20的所有內容,然後左右修剪。 –