2017-05-07 7 views
0

저는 파이썬을 처음 접했고 현재이 작업을하고 있습니다. 나는 몇 가지 초보자 질문을하고 싶다.파이썬 텍스트 파일 문자열을 Excel 파일의 열로 변환

녹, 수영, 액화, 유동성, liquidness, 액체, liquid_state, 부드럽고 유창, 맑은, 유체

모든 형태 :

나는이 형식 다음 행의 번호와 텍스트 파일을 문자열의.

나는이 문자열을 다음 형식으로 Excel 파일로 추출하여 각 '문자열'이 별도의 열에 있도록하고 싶습니다.

 |  A |  B  |  C 
------------------------------------------------------ 
    1 | melted  | swimming  | liquified 
------------------------------------------------------ 
    2 | liquidity | liquidness | liquid 

내 코드는 다음과 같습니다 :

import pandas as pd 
from nltk.corpus import wordnet 
import xlwt 
import xlrd 

synonyms = [] 
for syn in wordnet.synsets('liquid'): 
    for l in syn.lemmas(): 
     synonyms.append(l.name()) 
     A = set(synonyms) 
     A = list(A) 
     A = ', ' .join(str(e) for e in A) 
#print(A) 
with open('Output.txt', 'w') as file: 
    print(A) 
    file.write(A) 
    file.close() 

data = [] 
with open("Output.txt") as f: 
    for line in f: 
     data.append([word for word in line.split(" ") if word]) 
print(data) 

wb = xlwt.Workbook() 
sheet = wb.add_sheet("New Sheet") 
for row_index in range(len(data)): 
    for col_index in range(len(data[row_index])): 
     sheet.write(row_index, col_index, data[row_index][col_index]) 

wb.save("newSheet.xls") 

을하지만 난 내 코드를 실행할 때, 출력은 예상과. 다음과 같이 출력됩니다 :

 |  A |  B  |  C 
------------------------------------------------------ 
    1 | melted, swimming, liquified, liquidity, liquidness, liquid 
------------------------------------------------------ 
    2 |    |    | 

내 코드에 어떤 문제가 있습니까?

답변

0

질문 : 나는 데이터 당신,을 한 줄에

 |  A  |  B  |  C 
--------------------------------------------------- 
    1 | melted  | swimming  | liquified 

세 단어 다음과 같은 형식으로을 엑셀 파일에 이러한 문자열을 추출하기 좋아하지만, 귀하의 질문에 따라 것 하나의 텍스트 줄에 6 단어이 있습니다.

출력을 재현 할 수 없습니다!


1 | melted, swimming, liquified, liquidity, liquidness, liquid 
나를 위해 노력하고 있습니다 :

one_line_of_data = "melted, swimming, liquified, liquidity, liquidness, liquid\n" 

for line in f: 
    liw = [word.strip() for x,word in enumerate(line.split(","))] 
    data.append(liw[:3]) 
    data.append(liw[3:]) 

for row_index in range(len(data)): 
    for col_index in range(len(data[row_index])): 
     sheet.write(row_index, col_index, data[row_index][col_index]) 

파이썬으로 테스트 : 3.4.2