在过去的几个小时里,我一直在俄罗斯制表符分隔的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)来查看每个列表的长度,我会得到以下结果:4 1 4 1这可能意味着拆分(“\”)不起作用?
我使用的是Python3.3和mac。
最后,我不认为mac上的命令行没有显示西里尔字符是一个问题 - 它之前没有问题(西方Windows版本似乎失败了)。
请让我知道我做错了什么。
谢谢!
答案 0 :(得分: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
автостраховка
страховкаавто
страховка автомобиля
你确定文件中有标签而某些地方没有空格吗?