Skip to main content
 首页 » 编程设计

python之将长列表格式化为 80 列

2025年05月04日12tuyile006

  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 列的行,您可以将它们分成多行。这里很容易,因为您有一个列表。

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 .它还有其他拆分长行的示例。