2012-12-14 3 views
2

저는 프로그래밍에 익숙하지 않으며이 사이트에도 익숙합니다. 그래서 어리석은 말이나 "새내기"에 대해 미리 사과드립니다.Python을 사용하여 구분 기호가있는 CSV 파일을 작성하십시오.

저는 현재 항목 목록을 가져 와서 다른 것들 중에서 csv 파일에 쓰는 스크립트를 파이썬으로 작성하려고합니다. 목록에있는 각 항목은 실제로 의미가있는 경우 두 개의 문자열 목록입니다. 본질적으로 형식은 [[Google, http://google.com], [BBC, http://bbc.co.uk]]이지만 다른 값을 가지고 있습니다.

CSV 내에서 첫 번째 열에있는 각 목록의 첫 번째 항목과 두 번째 열에있는 각 목록의 두 번째 항목으로 표시하고 싶습니다.

with open('integration.csv', 'wb') as f: 
    writer = csv.writer(f, delimiter=',', dialect='excel') 
    writer.writerows(w for w in foundInstances) 

어떤 이유로,이 구분이 무시되고있는 것 같습니다 :

내가 도움이 필요 내 코드의 일부이다. Excel에서 파일을 열면 각 셀에 하나의 목록이 있습니다. 이전 예를 사용하면 각 셀의 제목은 "Google, http://google.com"입니다. 첫 번째 열에는 Google을, 두 번째 열에는 http://google.com을 원합니다. 그래서 기본적으로 "Google"과 "http://google.com"그리고 그 아래 "BBC"와 "http://bbc.co.uk". 이것이 가능한가?

내 코드에서 foundInstances는 모든 항목이 포함 된 목록입니다. 전체적으로 스크립트는 정상적으로 작동하지만이 마지막 단계를 수행 할 수 없습니다. stackoverflow 및 인터넷의 나머지 부분을 둘러보고 많은 일을했지만,이 마지막 단계로 나를 도왔던 것을 찾지 못했습니다.

모든 조언을 크게 듣습니다. 더 많은 정보가 필요하시면 기꺼이 제공해 드리겠습니다.

감사합니다.

+0

파일을 텍스트 편집기로 열면 실제로 어떻게 보입니까? 파일이 올 바르지 만 엑셀이 파일을 올바르게 해석하지 못하고 있습니까? – BrenBarn

+3

단지 코드 블록을 올바르게 포맷하려면, 평소와 같이 입력하고, 그것을 선택한 다음,'{}'버튼을 클릭하십시오. 그러면 코드 블록이 될 또 다른 4 개의 공백으로 모든 것을 들여 씁니다. – poke

+0

@BrenBarn 텍스트 편집기 내에서 파일은 동일하게 나타납니다 : "list1 item1, list1 item2", 등등. 내가 제안한 것은 사실일지도 모르겠지만, 내가 잘못한 것 같았습니다 코드에서. –

답변

1

는, 문제는 여기에 있습니다 : 여기

foundInstances.append(['http://' + str(num) + 'endofsite' + ', ' + desc]) 

, 데이터의 각 행에 대해, 당신은 이미 거기에 쉼표를 가지고 하나의 문자열을 만듭니다. 이는 csv 모듈에 필요한 것이 아닙니다. CSV 모듈 은 데이터에서 쉼표로 구분 된 문자열을으로 만듭니다. [col1, col2, col3]의 간단한 목록으로 데이터를 제공해야합니다. 당신이하고있는 일은 이미 데이터를 문자열로 압축 한 ["col1, col2, col3"]입니다.시도해보십시오.

foundInstances.append(['http://' + str(num) + 'endofsite', desc]) 
+0

작동합니다. 정말 고맙습니다! –

0

난 그냥 당신이

foundInstances = [[1,2],[3,4]] 

에 게시 된 코드를 테스트하고 그것을 잘 작동했다. 그것은 확실히 그래서 나는 당신의 foundInstances 잘못된 형식이 있다고 가정 형식

1,2 
3,4 

에 출력 CSV를 생성합니다. 당신이 복잡한 방식으로 변수를 구성하는 경우에는 CSV 코드의 실제 변수를 사용하기 전에

import pdb; pdb.set_trace() 

를 추가 할 수 있습니다. 이렇게하면 파이썬 디버거를 사용하여 런타임에 변수를 검사 할 수 있습니다. 사용법에 대한 자세한 내용은 Python Debugger Reference을 참조하십시오.

PEP-8 Style Guide에 따르면, 변수 이름은 Python에서 found_instances이어야합니다. 페이스트 빈에 코드에서

+0

감사합니다. 당신이 도움을 요청할 때 Excel에서 다른 셀에있는 1과 2를 구할 수 있습니까? –

+0

파일을 Excel로 가져 오는 방법에 따라 달라집니다. 파일로 방금 열면 "1,2" Excel에서 파일을 일반 텍스트로 해석하기 때문에 한 열에 표시됩니다 Excel에서 데이터 가져 오기 기능을 사용하여 CSV로 읽어야합니다 어떤 Excel 버전이 있습니까? 내 버전 (Mac 용 Excel 2012)의 경우 File -> 가져 오기 -> CSV. 예를 들어 de 마법사를 통해 리미터를 제한 할 수 있습니다. –

+0

나는 그것을 알아야했다. 고마워요. - Excel에서이 작업 방법을 살펴 보겠습니다. –

관련 문제