1

ここ数時間、ロシア語のタブ区切りの txt ファイルについて頭を悩ませていました。これがどのように見えるかです:

CODE    AD_GROUP    KEYWORD MATCH_TYPE

009966  Автостраховка   автостраховка   Broad
009965  Автостраховка   страховкаавто   Broad
009964  Автостраховка   страховка автомобиля    Broad

目標は、txt ファイルを解析し、今のところ各キーワードを個別に出力することです。

これまでのところ、私は持っています:

f = open("struct.txt",encoding="UTF-8",errors='strict')

for line in f:
    vals = line.split("\t")
    print(vals[2])

f.close()

しかし、次のエラーが発生し続けます。

UnicodeDecodeError: 'utf-8' コーデックは位置 0 のバイト 0xff をデコードできません: 無効な開始バイト

また、各リストの長さを確認するために len(vals) を実行すると、次のようになります。

私は Python3.3 と mac を使用しています。

最後に、Mac のコマンド ラインでキリル文字が表示されないのは問題ではないと思います。以前は問題なく表示されていました (Windows の西部バージョンでは失敗するようです)。

私が間違っていることを教えてください。

ありがとうございました!

4

1 に答える 1

2

このコードを使用する (Python2.7)

f = open("struct.txt")

for line in f:
    vals = [item for item in line.strip().split("\t") if item != '']
    if len(vals):
        print(vals[2])

f.close()

そして、ソース(タブがあることを確認するために編集したもの)から、次の出力が得られます。

> python so_16703270.py
KEYWORD
автостраховка
страховкаавто
страховка автомобиля

ファイル全体にタブがあり、場所によってはスペースがありませんか?

于 2013-05-22T23:54:30.440 に答える