2010-07-22 9 views
1

엑셀에서 열기에는 너무 긴 가로 이름 목록이 있습니다. 이름은 90,000 가지입니다. 각 이름 뒤에 쉼표를 추가하여 내 프로그램에 추가해야합니다. 찾거나 바꾸려고했지만 컴퓨터가 멈추고 충돌이 발생합니다. 각 이름의 끝에 쉼표를 붙일 수있는 영리한 방법이 있습니까? 필자의 옵션은 파이썬이며 Excel 덕분입니다. 실제로 파이썬 목록이 있다면목록 끝에 쉼표를 효율적으로 추가하는 방법은 무엇입니까?

+1

이름은 어떻게 구분 되나요? 나는 그러한 파일을 생성하기위한 작은 프로그램을 작성하고 Emacs를 사용하여 검색/바꾸기를 시도했다. 어떤 문제도없이 잘 작동했습니다. –

+1

이 데이터의 예를 제공해 주시겠습니까? –

+1

당신이 가지고있는 코드와 어떤 종류의 데이터를 가져 가야하고 되돌려 주어야 하는지를 –

답변

5

, 당신은뿐만 아니라 말을해야하는 경우, 다음 ','.join(names)이 하나 더 추가 할 + ','를 사용 (각 이름 사이에 쉼표 다음과 같은 하나의 문자열로 만들 것 names 말 결과에 쉼표).

"목록"이 있다고해도 실제로는 문자열이인데, 예를 들어 이름이 ...으로 구분되는 파일에 있습니까? 당신은 우리에게 말하지 않으며 따라서 우리가 추측하도록 강요합니다. 그들이 (하나의 이름 한 줄에) 라인 끝으로 구분하는 경우 예를 들어, 당신의 인생 가장 쉬운 방법입니다 :

with open('yourfile.txt') as f: 
    result = ','.join(f) 

(다시, 당신은 물론 것을 필요로하는 경우 조인 후 + ',' 이것을 보완) . 물론 줄 끝으로 구분하는 것이 텍스트 파일의 일반적인 기본 동작이기 때문입니다.

구분 기호가 다른 경우 파일 내용을 문자열 (f.read())으로 읽고 적절하게 분할 한 다음 쉼표로 다시 가입시켜야합니다. 분리는 탭 문자 인 경우 예를 들어

:

with open('yourfile.txt') as f: 
    result = ','.join(f.read().split('\t')) 

보시다시피, 그것은 ;-) 그래서 훨씬 더 아니다.

+0

제 생각에 그것은 공백이거나 탭으로 구분되어 있습니다. 단지 그가 말했기 때문에 : "가로 목록" – Armstrongest

+0

그래, 단지 공백에 의해 구분됩니다 –

+1

@ 로버트, 그리고 나서 공백으로 나눕니다. (또는 "공백"으로 "임의의 공백"을 의미한다면, 대신에 인수없이 split을 호출하면 임의의 공백 순서에 의한 문자열 - 공백, 탭 등). –

관련 문제