Python \ufeff

markdown #說明 遇到這個問題真的是只能記錄下來,不然很快又會忘記了.... 今天讀取 csv 檔案時,使用 row[欄位名稱] 試了很多次都選取不到第一欄,但是其他欄位都可以 覺得超級奇怪的,一度以為電腦是不是壞掉,還換了一台電腦測試也是一樣的情況 最後突然想到把它print 看看到底在第一欄他是甚麼值,才發現 \ufeff,這個東西 覺得太驚訝了,果然加入\ufeff 這個 丟下去找欄位就找的到,但是\ufeff 這個到底是甚麼? #操作流程 ##Code ``` import csv import shutil str0 ='0' str1 ='1' dir_path='B/' List_LC1=[] with open('label_test.csv', newline='',encoding="utf-8") as csvfile: rows = csv.DictReader(csvfile) for row in rows: location = row['LC'].lower().find(str1) if location >-1: List_LC1.append(row['\ufeff病歷號']) print(List_LC1) print(len(List_LC1)) for i in range(len(List_LC1)): path_old=dir_path+List_LC1[i]+'/' path_new=List_LC1[i] shutil.copytree(path_old, path_new) ``` ##看看別人怎麼說 - REF - 在Windows下用文本編輯器創建的文本文件,如果選擇以UTF-8等Unicode格式保存,會在文件頭(第一個字符)加入一個BOM標識。具體去除方法看看下面代碼 應該就是這個了! 他看起就是一個在表頭第一個的位置會加入的東西 ##去除\ufeff - REF
``` with open(file_path, mode='r', encoding='UTF-8-sig') as f: s = f.read() ``` 就是這個 可以把那些去除 ##Demo

留言

  1. 今天我也撞到這個問題,感謝解惑!

    回覆刪除

張貼留言