2017-09-14 6 views
-4

안녕하세요. 저는 이와 같이 쉼표로 구분 된 csv 파일을 가지고 있습니다.python을 사용하여 csv 파일의 필드에서 여러 값을 읽는 방법 3

name, email1; Email2; email3, etc, telephone 

파이썬에서 csv 모듈을 사용하여 이메일 필드에서 모든 이메일 주소를 추출하고 싶습니다. 그리고 각 전자 메일 주소에서이

name, email1, etc, telephone 
name, Email2, etc, telephone 
name, email3, etc, telephone 

어쩌면 내가 이메일 필드를 읽을 필요하고 분리 된 문자열에 분할 같은 다른 필드를 사용하여 행을 쓰기?

+2

예, 아마 당신이 할를 사용

import csv with open('input.csv', newline='') as f_input, open('output.csv', 'w', newline='') as f_output: csv_output = csv.writer(f_output) for row in csv.reader(f_input): csv_output.writerows([row[0], email] + row[3:] for email in row[1].split(';')) 

을 테스트. 그것을 구현 한 다음 문제가 발생하면 질문하십시오. – pvg

답변

0

CSV 판독기와 작성기를 만들고 앞에서 설명한대로 표준 , 구분 기호를 사용하여 파일을 읽은 다음 ;을 사용하여 전자 메일 필드를 수동으로 분할합니다. 각 이메일 항목에 대해 다른 필드를 쓰기 :

import csv 

with open('input.csv', newline='') as f_input, open('output.csv', 'w', newline='') as f_output: 
    csv_input = csv.reader(f_input) 
    csv_output = csv.writer(f_output) 

    for row in csv_input: 
     emails = row[1].split(';') 
     for email in emails: 
      csv_output.writerow([row[0], email] + row[3:]) 

또는 약간 더 컴팩트를 같이 파이썬 3.x를

+0

감사합니다. 나는 파이썬을 벌고있다. –

관련 문제