2017-01-29 8 views
-2

ファイルを読み込んで各行を分割するコードがあります。オブジェクトが2つの要素を新しいテーブルに配置する場合は、2つの分割このような要素:分割された行からテーブルに文字列を挿入する方法

私のファイルは行で構成されて
tab = [ 
    ('football', 'sport'), 
    ('element!', 'pyhsics'), 
    ('coefficient', 'math'), 
    .... 
] 

、各行がタブで区切られた2つの要素を含んでい

sport football 
Math thermalization 
Process thermalization 
phsycis semi-classical methods 
Process nuclear reactions 

私のコードは次のとおりです。

from codecs import open 
from contextlib import suppress 
import logging 

new_path = 'C:/learning/file' 
new_days = open(new_path,'w') 

div_texts = [] 
tab= [] 


with open("C:/learning/clea", "r", "utf-8") as f: 
    lines = f.readlines() 
    f.close() 

for line in lines: 
    div_texts.append(line.strip().split("\t")) 



for i in range(len(div_texts)): 
    try: 
     new_days.write(div_texts[i][0]) 
     tab[i] = div_texts[i] 
     print(tab[i]) 
     new_days.write("\n") 
    except (UnicodeEncodeError,KeyError,IndexError): 
     pass 

ここの印刷(タブ[i])は何も印刷していません!

tab[i] = div_texts[i] 

タブので、このコードは、このようなキャッチtry:ブロックの内側にあるため、そのi番目のインデックスが報告されていないままIndexError例外が発生し服用空です:

は、エラーがここにあるあなたの助け

+0

英語の熟練は必要ありませんが、適切な形式の質問が必要です。 –

+1

最初に行うことは、try-except-passをコメントアウトしてエラーを観測することです。 –

+0

これは少し混乱します。出力をタプルのリストとして表示しますが、div_textsとlinesは文字列のリストです。それは印刷の失敗の原因ではありません。あなたはdiv_textが何であるか見てみましたか?私の推測では、テキストはファイルではなく、適切な場所でコードをスキャンすることであるということです。言い換えれば、実行が終了したら、div_text [0] – PyNEwbie

答えて

0

をありがとう例外の種類であるため、制御フローはただちにexcept:節に進みます。

代わりに、たとえばtab.append(div_texts[i])を試してください。

関連する問題