2016-09-15 2 views
0

현재 RapidMiner에서 작업 중이며 xthon 파일에있는 RapidMiner 결과를 txt 파일로 복사하여 Python으로 처리해야합니다. 나는 칼럼 A (A1-A1500)와 칼럼 C (C1-C1500)의 파일명에 평범한 텍스트를 가지고있다. 내 질문 : 어떤 가능성 (난 xlrd 모듈을 생각하고 있어요) 열 A에있는 모든 셀의 내용을 읽고 해당 C 열에 주어진 파일 이름과 함께 새로 만든 된 txt 파일에 인쇄 할 수 있습니까? 나는 순간에 잃어버린 조금 생각하기 전에 내가 xlrd 모듈과 함께 일한 적이 것처럼Excel 셀 읽기 및 내용을 txt 파일로 복사

...

답변

3

.xlsx 처리와 관련된 모든 작업에 대해 openpyxl을 권장 할 수 있습니다. 당신의 요구 사항은

:

from openpyxl import * 
import os  

p = 'path/to/the/folder/with/your/.xlsx' 
files = [_ for _ in os.listdir(p) if _.endswith('.xlsx')] 

for f in files: 

    wb = load_workbook(os.path.join(p, f)) 
    ws = wb['name_of_sheet'] 
    for row in ws.rows: 
     with open(row[2].value+'.txt', 'w') as outfile: 
       outfile.write(row[0].value) 
+0

도움 주셔서 감사합니다. 이것은 완벽하게 작동합니다! 아마도 한 가지 더. 동일한 구조의 여러 엑셀 파일이 들어있는 디렉토리가 있다고 가정하면 모든 엑셀 파일을 반복하고 내 출력 파일을 내 모든 파일을 포함 할 특정 디렉토리로 리디렉션 할 수 있습니다 (os.chdir 및 for 루프 사용). 결국 txt 파일? –

+0

게시물을 편집 해 주셔서 감사합니다. 지금 반복은 완벽하게 작동합니다. os.chdir (r "F : \ Results") 만 추가하여 내 출력을 내 Excel 파일과 동일한 디렉토리에 저장합니다. –

0

좋은 하루! 따라서 귀하의 질문을 정확하게 이해하고 있는지 확신 할 수 없지만 Excel 예제를 루프 예제 연산자로 조합 해 보았습니까? 루프 하위 프로세스는 CSV 연산자 쓰기 또는 유사한 것을 사용할 수 있습니다.

+0

좋은 생각을. RM에서이 작업을 수행하지 않았습니다. 그러나 outout 파일을 입력 파일과 동일한 이름으로 지정할 수 있습니까? –

0

덕분에 최종 코드는 @corinna합니다 :

from openpyxl import * 
import os 


p = r'F:\Results' 
files = [_ for _ in os.listdir(p) if _ .endswith('.xlsx')] 
os.chdir(r"F:\Results") 
for f in files: 

    file_location = load_workbook(os.path.join(p, f)) 
    sheet = file_location['Normal'] 
    for row in sheet.rows: 
     with open(row[2].value + '.txt', "w") as outfile: 
      outfile.write(row[0].value) 
관련 문제