다시 수정하여 질문 드립니다. list 에서 특정 파일 추출

조회수 458회

안녕하세요

예를들어 파일명에 특정 패턴이 다음과 같고,

3G1-1EW_E-W_ACC
3G1-1NS_N-S_ACC
3G1-1UD_U-D_ACC
3G1-2EW_E-W_ACC
3G1-2NS_N-S_ACC
3G1-2UD_U-D_ACC

abc-def_g-h_ijk 라고 할 때

a, b, c, d 가 동일한 파일명을 찾아서 추출할 수 있나요..?

예를 들어 위와 같이 list에 6개 파일이 있고

3G1-1EW_E-W_ACC
3G1-1NS_N-S_ACC
3G1-1UD_U-D_ACC

다음과 같이 조건에 맞는 3개의 파일만 찾아서 추출하여

파일이 있다면

 file1=pd.read_csv('3G1-1EW_E-W_ACC')
 file2=pd.read_csv('3G1-1NS_N-S_ACC')
 file3=pd.read_csv('3G1-1UD_U-D_ACC')

로 지정하고 pd.concat 으로 3G1-1.csv파일병합 후

다시 돌아가서

 file1=pd.read_csv('3G1-2EW_E-W_ACC')
 file2=pd.read_csv('3G1-2NS_N-S_ACC')
 file3=pd.read_csv('3G1-2UD_U-D_ACC')

도 마찬가지로 3G1-2.csv파일병합 하고자 합니다.

ii = [i for i in os.listdir(targerdir) if '3G1-1' in i]

요정도는 했는데 매번 3G1-1 이라는 조건문을 바꿔야 해서, 혹시 다른 루틴은 없나요?

1 답변

  • 참고하세요.

    L = [
        '3G1-1EW_E-W_ACC',
        '3G1-1NS_N-S_ACC',
        '3G1-1UD_U-D_ACC',
        '3G1-2EW_E-W_ACC',
        '3G1-2NS_N-S_ACC',
        '3G1-2UD_U-D_ACC'
    ]
    import itertools as it
    
    g = it.groupby(L, lambda name:name[:5])
    for k, v in g:
        print(k, list(v))
    3G1-1 ['3G1-1EW_E-W_ACC', '3G1-1NS_N-S_ACC', '3G1-1UD_U-D_ACC']
    3G1-2 ['3G1-2EW_E-W_ACC', '3G1-2NS_N-S_ACC', '3G1-2UD_U-D_ACC']
    
    
    • 답변을 수정한 것 같은데...답변을 아래로 더 다세요, 그리고 추가 질문이 이해가 안됩니다. 정영훈 2021.10.20 01:34

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)