2017-09-20 6 views
0

このコードを実行すると 'int'オブジェクトに属性 'format'エラーが発生します 理由はパスワードに数字と文字が含まれているためです。数値と文字列を組み合わせると 'int'オブジェクトに属性がありません

import subprocess 

password = input('Enter New Password: ') 
c = subprocess.call(["C:\\WINDOWS\\system32\\WindowsPowerShell\\v1.0\\powershell.exe", "Set-ADAccountPassword john -NewPassword {0} –Reset"]) 
f = c.format(password) 

print(f) 

私は、パスワードは文字と数字の両方が含まれていることを指定することができる方法はあり

f = c.format(int(password)) 

f = c.format(str(password)) 

を試してみましたか?

+1

に渡されている第二引数にformatを適用する必要があります[subprocess.call'の説明](https://docs.python.org/3/library/subprocess.html#older-high-level-api)をもう一度読んでください。どのタイプで 'c'を期待していますか?あれ? – FabienP

答えて

0

を台無しに順序を持っています。返された値subprocess.callformatを適用しています

argsで説明されているコマンドを実行してください。コマンドが完了するまで待ってからを呼び出し、returncode属性を返します。

returncodeはあなたのコマンドに基づいて、そのエラー

を得ている理由である、intである、あなたはcall

import subprocess 

password = input('Enter New Password: ') 
c1 = "C:\\WINDOWS\\system32\\WindowsPowerShell\\v1.0\\powershell.exe" 
c2 = "Set-ADAccountPassword john -NewPassword {0} –Reset".format(password) 

subprocess.call([c1, c2]) 
0

あなたはすべてのあなたは、コードの間違った部分にformatを適用している、

password = raw_input('Enter New Password: ') 

cmd1, cmd2 = "C:\\WINDOWS\\system32\\WindowsPowerShell\\v1.0\\powershell.exe", "Set-ADAccountPassword john -NewPassword {0} –Reset" 

c = subprocess.call([cmd1, cmd2.format(password)]) 
関連する問題