-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例外が発生し服用空です:
は、エラーがここにあるあなたの助け
英語の熟練は必要ありませんが、適切な形式の質問が必要です。 –
最初に行うことは、try-except-passをコメントアウトしてエラーを観測することです。 –
これは少し混乱します。出力をタプルのリストとして表示しますが、div_textsとlinesは文字列のリストです。それは印刷の失敗の原因ではありません。あなたはdiv_textが何であるか見てみましたか?私の推測では、テキストはファイルではなく、適切な場所でコードをスキャンすることであるということです。言い換えれば、実行が終了したら、div_text [0] – PyNEwbie