2016-03-22 56 views
0

我想在python中顯示我選擇的用戶的別名,就像在終端中鍵入別名一樣。 到目前爲止的代碼是這樣的:如何在python中顯示用戶別名

tt = open("/etc/passwd" , "r") 
with tt as f2: 
    with open("passwd" , "w+") as f1: 
     f1.write(f2.read()) 
     f1.seek(0,0) 
     command = f1.read() 
     print 
     print command 

chose = raw_input("select user's name from this list > ") 
rootlist = "1) Show user groups \n2) Show user id \n3) Show users alias\n4) Add new alias \n5) Change Password \n6) Back" 
print 
print rootlist 
print 
chose2 = int(raw_input("Choose a command > ")) 
if choose == 3: 
    os.system("alias ") 

但是使用os.system(「別名」)不工作,我似乎無法找到一個合適的方式做T吧。

回答

0

別名是內置一個外殼可以在這裏看到

$ type -a alias 
alias is a shell builtin 

這是問題,你可以通過向bash調用你的shell命令解決

import os 
os.system('bash -i -c "alias"') 

或首選使用子過程模塊的方式

from subprocess import Popen, PIPE, STDOUT 

cmd = 'bash -i -c "alias"' 
event = Popen(cmd, shell=True, stdin=PIPE, stdout=PIPE, stderr=STDOUT) 
output = event.communicate()[0] 
print(output)