2013-07-11 2 views
0

나는 여전히 파이썬을 배우기 때문에 나랑 벗었 어!
목록에서 변경 가능한 문자열을 추출하고 Python에 삽입

['2 19 2839475239874 hda'] 

내가 끝에서 HDA를 추출해야합니다

나는 다음과 같다 목록을 가지고있다. 그러나, hda는 항상 마지막 덩어리가 아닐 수도 있으며, hda는 항상 3 글자 (4 또는 5 일 수 있으며 숫자를 포함 할 수 있음) 일 수도 있습니다. 하지만 항상 문자 'h'로 시작합니다.

hda가 성공적으로 추출 된 후, 그 청크를 dd 명령에 삽입해야합니다.

dd if=/dev/zero of=/dev/hda bs=512 count=1 

을하지만 HDA가 다를 수 만약 내가 dd 명령을 실행할 때마다, 나는 변화 dd 명령의 'HDA'부분을 가지고하는 방법이 필요합니다 : 그것은 다음과 같습니다.

죄송합니다. 혼란스러운 경우, 초보자이며 혼란 스럽습니다! 추출을 위해 startswith를 사용해 보았지만 그곳을 지나칠 수는 없습니다! 간단히과 같이

+0

'[ '2 19 2839475239874 hda']'하나의 요소 만있는 목록? 왜 그냥 문자열을 사용하지 않거나 목록에 더 많은 문자열이 있습니까? – zhangyangyu

+0

@zhangyangyu 아니, 이것은 유일한 목록이며 hda는 내가 필요한 유일한 문자열/청크입니다. 죄송합니다. 질문을 제대로 이해하지 못 하셨다면. – ohhiloveyouu

+0

@zhangyangyu, 나는 그가 단지 그것을 잘못한 것 같아요. '[ '2', '19', '2839475239874', 'hda']';]를 읽으십시오. 내가 만든 –

답변

1

:

lst = ['2 19 2839475239874 hda'] 

# Extracting the device part 
dev = filter(lambda s: s[0] is 'h', lst[0].split())[0] 

# Inserting it 
cmd = 'dd if=/dev/zero of=/dev/{0} bs=512 count=1'.format(dev) 

당신이 비록 귀하의 목록에있는 H-단어가없는 경우를 확인하는 것이 좋습니다.

+0

이 프로그램은이를 인쇄했는데 : [ '이 19 2839475239874 HDA를'] 으로는 [ '2 – ohhiloveyouu

+0

@ohhiloveyouu는 대답을 업데이트했습니다. –

1
>>> thelist = ['2 19 2839475239874 hda'] 
>>> [item for item in thelist[0].split() if item[0] == 'h'][0] 
'hda' 
관련 문제