将长列表格式化为80列

2024-04-24 05:09:14 发布

您现在位置:Python中文网/ 问答频道 /正文

  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标准。你想分享一些关于干净代码的技巧吗?在


Tags: keynamein列表foruuidpasswordsystem
1条回答
网友
1楼 · 发布于 2024-04-24 05:09:14

对于超过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。它也有其他分裂长线的例子。在

相关问题 更多 >