从remotels列表中提取分支名称的最适合的方法是什么?

2024-04-26 11:24:36 发布

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

我是一个有经验的程序员,对Python来说是个新手

我使用git ls-remote命令获取了一个分支列表:

db6ad7246abf74cb845baa60e6fe45dacf897612    HEAD
1fc347b17201054d8b5b9593efc1925918f04940    refs/heads/develop
63b1a5b5901250651a162814b085c88c96835e3a    refs/heads/feature-dm
8d72969f3b1ef5b16792b1cca5c65262d78b8dc2    refs/heads/feature/breedtest
0ca9346d1f5b46f77f41a89aeb11998cbb83c007    refs/heads/feature/fedortest
147bea618187c11927bfe83f1d8b52591f3b734c    refs/heads/feature/frontend-autumn14
d5e5d4d75dddd46a5068ca621ce8e74e68bdca4e    refs/heads/feature/socket-testing
03e70c846a84688ccbf78ca1159f410e577e1ee5    refs/heads/feature/youtracktest
db6ad7246abf74cb845baa60e6fe45dacf897612    refs/heads/master
787580497c0b41ca040c60bd7906ab598f891a43    refs/heads/master-old
33a553135eb4341046702adaa762791b38456daf    refs/pull/67/head
10c4c172ba0479dac8eefba674395d09d9d4b061    refs/pull/67/merge

我只想从refs/heads/中提取分支名称:

develop
feature-dm
feature/breedtest
feature/fedortest
feature/frontend-autumn14
feature/socket-testing
feature/youtracktest
master
master-old

我可以在新行上拆分并使用regexp-但我肯定有一种聪明的pythonic方法可以做到这一点


Tags: master分支dmsockettestingfeatureheadsrefs
1条回答
网友
1楼 · 发布于 2024-04-26 11:24:36

一旦你在新行上拆分并有一个字符串列表

l = ['db6ad7246abf74cb845baa60e6fe45dacf897612    HEAD',
     '1fc347b17201054d8b5b9593efc1925918f04940    refs/heads/develop',
     '63b1a5b5901250651a162814b085c88c96835e3a    refs/heads/feature-dm',
     '8d72969f3b1ef5b16792b1cca5c65262d78b8dc2    refs/heads/feature/breedtest',
     '0ca9346d1f5b46f77f41a89aeb11998cbb83c007    refs/heads/feature/fedortest',
     '147bea618187c11927bfe83f1d8b52591f3b734c    refs/heads/feature/frontend-autumn14',
     'd5e5d4d75dddd46a5068ca621ce8e74e68bdca4e    refs/heads/feature/socket-testing',
     '03e70c846a84688ccbf78ca1159f410e577e1ee5    refs/heads/feature/youtracktest',
     'db6ad7246abf74cb845baa60e6fe45dacf897612    refs/heads/master',
     '787580497c0b41ca040c60bd7906ab598f891a43    refs/heads/master-old',
     '33a553135eb4341046702adaa762791b38456daf    refs/pull/67/head',
     '10c4c172ba0479dac8eefba674395d09d9d4b061    refs/pull/67/merge']

你可以使用列表理解

s = 'refs/heads/'
[i.split()[1][len(s):] for i in l if s in i]

输出

['develop',
 'feature-dm',
 'feature/breedtest',
 'feature/fedortest',
 'feature/frontend-autumn14',
 'feature/socket-testing',
 'feature/youtracktest',
 'master',
 'master-old']

相关问题 更多 >