2016-08-18 7 views
1

J'utilise pysvn pour obtenir diff entre 2 liens, et la fonction que je utilise retourne une liste avec '<>':Python: Liste avec [< >, <> ...]

[<PysvnDiffSummary u'sdk_include/EthernetScannerSDK.h'>, <PysvnDiffSummary u'sdk_include/EthernetScannerSDKDefine.h'>, <PysvnDiffSummary u'sdk_include/CMakeLists.txt'>] 

Quel est exactement ce type de données? Et comment puis-je accéder seulement à la partie après "'"? (EG de < PysvnDiffSummary u'sdk_include/EthernetScannerSDK.h '> Je veux seulement sdk_include/EthernetScannerSDK.h, sans utiliser .split (' \ ») si possible.

+3

Ce que vous voyez est la représentation 'repr' des objets' PysvnDiffSummary'. En regardant le code source, vous pouvez obtenir la valeur requise en utilisant l'attribut '.__ name' des objets individuels: https://github.com/xiewandongqq/subversion_for_sublime_txt3/blob/56647080a3d3dd96389109ef6aa04d7e42f3f76d/pysvn/__init__.py.template#L38 –

+0

trouver que tout cela est documenté dans le guide de référence des programmeurs pysvn qui est toujours installé avec le kit pysvn: http://pysvn.tigris.org/docs/pysvn_prog_ref.html –

Répondre

1

Il est une représentation de l'objet PySvnDiffSummary. Essayez d'utiliser dir (Object) pour obtenir ses attributs et à partir de là.Il va probablement être quelque chose comme object.url

alors quand vous découvrez quel est l'attribut (à partir des commentaires d'ailleurs, il est __name), vous voulez quelque chose comme:

urls = [sumary.__name for summary in list] 

La liste de travail avec juste ce que vous voulez :)

+0

Utiliser la compréhension de la liste et l'attribut '__name' comme proposé par Ashwini : 'urls = [résumé .__ nom pour le résumé dans la liste]' – Frodon

+0

Cela a fonctionné! Honnêtement, je ne connaissais pas 'dir (Object)' qui semble être très utile. Enfin, j'ai ce nombre d'options (je vais les écrire ici en une seconde.) ['__add__', '__class__', '__contains__', '__delattr__', '__delitem__', '__delslice__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getslice__', '__gt__', '__hash__', '__iadd__', '__imul__', '__init__', '__iter__ ',' __le__ ',' __len__ ',' __lt__ ',' __mul__ ',' __ne__ ',' __new__ ',' __reduce__ ',' __reduce_ex__ ',' __repr__ ',' __reversed__ ',' __rmul__ ',' __setattr__ ', '__setitem__', – SnuKies

+0

certains d'entre eux sont des builtins python, dans le commentaire d'Ashwini il y a un lien vers une source, c'est probablement plus facile à lire à partir de là:] – iScrE4m