<p>我有密码:</p>
<pre><code> print('Adding user %s...' % user)
# my own class with method
sysacts.useradd()
# check if user exist after been added
try:
pwd.getpwnam(user)
print('Done.')
except KeyError as e:
print('ERROR! %s.\nExit.' %e)
sys.exit(1)
</code></pre>
<p>但是-我不喜欢,那个用户不带支票就添加。
所以-我想用next重新制作:</p>
<pre><code> print('Adding user %s...' % user)
# check if new user exist before add it
try:
pwd.getpwnam(user)
print('User already present, skipping.')
# if no user - will return KeyError: 'getpwnam(): name not found: Username'
except KeyError as e:
sysacts.useradd()
print('Done.')
</code></pre>
<p>所以-使用<code>KeyError</code>作为这种检查是正常的吗?
KeyError可以表示其他错误。你知道吗</p>
<p>如果没有-在这里检查用户的最佳方法是什么?你知道吗</p>
<p>例如-in <code>create directory</code>block-I made:</p>
<pre><code> # create site files directory
dir = virt_hosts_dir + 'vhosts/' + user + '/' + domain + '/'
print('\nCreating new directory %s' % dir)
# if no directory - run mkdir
if not os.path.isdir(dir):
try:
sysacts.mkdir(dir)
print('Done.')
except OSError as e:
print('ERROR: %s' %e)
sys.exit(2)
# otherwise - skip
else:
print('Directory %s already present, skipping.' % dir)
</code></pre>
<p>p.S.CentOS,Python 2.6版</p>