(1)路徑問題 open一個同py文件同一個目錄的文件的時候,用以下: txt = open('/filtered_words.txt','rb') words = txt.readline() filtered = [] for word in words: filtered.append(word) txt.close() print(filtered) 會報錯 FileNotFoundError: [Errno 2] No such file or directory: '/filtered_words.txt' 這里寫錯了一個地方,應該寫成 txt = open('filtered_words.txt','rb') 也可利用絕對路徑 txt = open('E:\\python_project\\test\github\\filtered_words.txt','rb') 這樣也不會報錯 用反斜杠,這樣也不會報錯 txt = open('E:/python_project/test/github/filtered_words.txt','rb') (3)打開文件格式 文檔的內容是漢字,用utf-8格式,如果用rb權限open文件,漢字打印出來會變成數字 txt = open('filtered_words.txt','rb') words = txt.readline() 打印結果是: [229, 140, 151, 228, 186, 172, 13, 10] 用r權限open會報錯 UnicodeDecodeError: 'gbk' codec can't decode byte 0x98 in position 16: illegal multibyte sequence 在open的時候,加一個編碼 txt = open('filtered_words.txt','r',encoding='UTF-8') words = txt.readline() 打印出來的結果是 ['北', '京', '\n'] 把readline換成read函數,打印結果是 ['北', '京', '\n', '程', '序', '員', '\n', '公', '務', '員'] 自行百度了read()、readline()、readlines()的區別,最后代碼整理 txt = open('filtered_words.txt','rb',encoding='UTF-8') wor = txt.readlines() filtered = [] for word in wor: word = word.strip('\n') filtered.append(word) print(word) txt.close() print(filtered) 打印結果是['北京', '程序員', '公務員'] 最終代碼如下: class senseWord(): def __init__(self): self.list = [] file = open('filtered_words.txt','r',encoding='UTF-8') words = file.readlines() for word in words: word = word.strip('\n') self.list.append(word) def checkwords(self,str): if str in self.list: return True else: return False if __name__ == '__main__': sense = senseWord() str = input('input a string') if sense.checkwords(str) == True: print('freedom') else:
————————————————