python**:
# -*- coding: utf-8 -*-
import codecs
#f1 = codecs.open("d:\\python_code\\bayes\\data\\label.txt", 'r', 'utf-8')
f1 = open("d:\\python_code\\bayes\\data\\label.txt")
list1 = ['味道', '物流', '外觀', '包裝', '價效比', '品質', '功效', '**', '贈品', '服務']
list2 =
for line in f1:
line = line.strip()
print list1
print list2
for l1 in list1:
#l1 = l1.decode("utf-8")
print l1,
if l1 in list2:
print true
else:
print false
label.txt:味道物流
外觀包裝
價效比品質
功效**
贈品服務
執行結果:
list1: ['\xe5\x91\xb3\xe9\x81\x93', '\xe7\x89\xa9\xe6\xb5\x81', '\xe5\xa4\x96\xe8\xa7\x82', '\xe5\x8c\x85\xe8\xa3\x85' , .......]
list2: ['\xef\xbb\xbf\xe5\x91\xb3\xe9\x81\x93', '\xe7\x89\xa9\xe6\xb5\x81', '\xe5\xa4\x96\xe8\xa7\x82', '\xe5\x8c\x85\xe8\xa3\x85' ,..........]
結果分析:對比兩個list,list2中的第乙個元素的unicode編碼多了'\xef\xbb\xbf'三個位元組的字串,這樣的話我們在使用帶這種標記的資料是可能會出現錯誤,
出現這種錯誤的原因是因為在.txt的檔案時,txt檔案會在該檔案的第一行加入這三個位元組作為開始的標記符,這種標記叫bom,當然我們在儲存的時候
可以把檔案儲存為無bom的檔案格式,這種錯誤通常都很隱蔽,需要注意!
matlab 讀arff檔案時的問題
在matlab中用arffread函式讀檔案時,遇到如下問題,data的第一列是字串,最後一列是問號,也就是非數字,而arffread函式會呼叫csvread csvread唯讀數字 csvread繼而呼叫dlmread。因此就會報出檔案和格式字元向量不匹配的錯誤。解決方法是 step1.在arff...
日誌分析中檔案編碼問題以及讀檔案匹配問題總結
一 檔案編碼問題 日誌格式可以為utf 8無bom格式 或者 ansi格式編碼。因為utf 8格式編碼會導致出現一些奇怪的問題,比如,第一行的log或待匹配的關鍵字 查詢不到。原因是 utf 8編碼的檔案中,bom佔三個位元組 如果用記事本把乙個文字檔案另存為utf 8編碼方式的話,用ue開啟這個檔...
日誌分析中檔案編碼問題以及讀檔案匹配問題總結
一 檔案編碼問題 日誌格式可以為utf 8無bom格式 或者 ansi格式編碼。因為utf 8格式編碼會導致出現一些奇怪的問題,比如,第一行的log或待匹配的關鍵字 查詢不到。原因是 utf 8編碼的檔案中,bom佔三個位元組 如果用記事本把乙個文字檔案另存為utf 8編碼方式的話,用ue開啟這個檔...