Re: [問題] 如何讓輸入的字串以Big5表示?
※ 引述《yungyuc (酷狗喵千代)》之銘言:
: ※ 引述《garywine1201 (那是啥)》之銘言:
: : 抱歉,有爬過文 可是對於這個問題還是沒sense
: : 我目前開啟了一個文字檔案,是以big5編碼的中文檔
: : 我希望由使用者輸入一個中文字,然後可以從這個檔案搜尋出來
: : 寫法大概是這樣
: : f = open('txtdb.txt','r')
: : lines= "\n".join(f)
: : a = str(raw_input("word: "))
: : for line in lines:
: : if a in line:
: : find = True
: : print(line)
: : 不過不管怎麼輸入,都蒐尋不到
: : 我想可能是因為使用者輸入的值不是Big5的原因
: : 不知道有沒有函式可以幫我把a轉成Big5呢?
: : 我試用了unicode()這個函式 不過結果是一樣的
: check http://www.diveintopython.org/xml_processing/unicode.html
謝謝您提供的資料
Dive into Python我有拜讀過了~不過這邊的unicode資料似乎沒什麼幫助
: BTW, 你的程式有錯;lines 不像你所想的是 list,它變成 str 了
: 這樣才對:
: f = open("foo", 'r')
: a = str(raw_input("word: "))
: for line in f:
: print line if line.find(a) >= 0
後來我將程式改成這樣
f = open("txtdb.txt", 'r')
#因為windows下預設以Big5輸入,所以我將輸入的值轉成utf8
a = str(raw_input("word: ")).decode('Big5').encode('utf8')
for line in f:
if line.find(a) >= 0:
print line
return 0
並把檔案改編為utf-8,
不過還是連一行資料都找不到,不知道問題到底在哪...
感謝您的回答:)
喔對了 我是在windows平台下 使用eclipse + pydev開發的
python為v 2.5
不過在嘗試寫這行
print line if line.find(a) >= 0
的時候會有錯,好像一定要拆開來。所以我就拆開來寫了。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.130.175.134
※ 編輯: garywine1201 來自: 140.130.175.134 (07/24 20:57)
推
07/24 21:07, , 1F
07/24 21:07, 1F
→
07/24 21:09, , 2F
07/24 21:09, 2F
推
07/24 21:37, , 3F
07/24 21:37, 3F
討論串 (同標題文章)
Python 近期熱門文章
PTT數位生活區 即時熱門文章