2011-12-23 1 views
1
try: 
    for key in copy['KnownNetworks'].keys(): 
     if copy['KnownNetworks'][key]['SSID_STR'] == networkDict['name']: 
     networkDict['uuid'] = copy['KnownNetworks'][key]['Unique Password ID'] 
     print 'Found existing reference to wireless password uuid: %s' % networkDict['uuid'] 
     found = True 
    except: 
    print 'Key KnownNetworks not found' 
    # Clean up top level key 

    keychain = '/Library/Keychains/System.keychain' 
    arguments = [security,"add-generic-password",'-a',networkDict['name'],'-l',networkDict['name'],'-D','Airport network password','-s',networkDict['uuid'],'-w',networkDict['pass'],'-T','group://Aiport','-T','/System/Library/CoreServices/SystemUIServer.app','-T','/Applications/System Preferences.app','-T','/usr/libexec/airportd',keychain] 
    addKeychainPassword(arguments) 
    users = '/var/db/dslocal/nodes/Default/users' 
    listing = os.listdir(users) 
    for plist in listing: 

フォーマットの質問がありますが、上記の例ですが、引数リスト宣言をフォーマットするには良い方法がありますか?サブプロセスコールなので、リストにする必要がありますが、辞書に変換してからリストに戻すことができます。私の主な目標は、ほとんどのUNIXスクリプトで80 col標準に収まるようにすることです。クリーンなコードの観点から共有したい技術はありますか?長いリストを80列にフォーマットする

答えて

8

80行以上の行については、複数の行に分割することができます。あなたがリストを持っているのでここでそれは簡単です。ここで

arguments = [security, 
      'add-generic-password', 
      '-a', networkDict['name'], 
      '-l', networkDict['name'], 
      '-D', 'Airport network password', 
      '-s', networkDict['uuid'], 
      '-w', networkDict['pass'], 
      '-T', 'group://Aiport', 
      '-T', '/System/Library/CoreServices/SystemUIServer.app', 
      '-T', '/Applications/System Preferences.app', 
      '-T', '/usr/libexec/airportd', 
      keychain] 

あなたは、Pythonのスタイルガイドに準拠の満足度の暖かい輝きを得るのですかだけでなく、コードがこのようにフォーマットされたときに引数が渡されて見やすいずっとです。

Pythonレイアウトの公式ガイドはPEP-8です。長い線を分割する他の例もあります。

+0

リンクとアドバイスをありがとう。 – acidprime

関連する問題