我們有一個數據錄入人員,他在Windows上以UTF-16編碼,並想要使用utf-8並刪除物料清單。 utf-8轉換工作,但BOM仍然存在。我將如何刪除這個?這是我目前有:轉換utf-16 - > utf-8並刪除物料清單
batch_3={'src':'/Users/jt/src','dest':'/Users/jt/dest/'}
batches=[batch_3]
for b in batches:
s_files=os.listdir(b['src'])
for file_name in s_files:
ff_name = os.path.join(b['src'], file_name)
if (os.path.isfile(ff_name) and ff_name.endswith('.json')):
print ff_name
target_file_name=os.path.join(b['dest'], file_name)
BLOCKSIZE = 1048576
with codecs.open(ff_name, "r", "utf-16-le") as source_file:
with codecs.open(target_file_name, "w+", "utf-8") as target_file:
while True:
contents = source_file.read(BLOCKSIZE)
if not contents:
break
target_file.write(contents)
如果我進制打印-C我看到:
Wed Jan 11$ hexdump -C svy-m-317.json
00000000 ef bb bf 7b 0d 0a 20 20 20 20 22 6e 61 6d 65 22 |...{.. "name"|
00000010 3a 22 53 61 76 6f 72 79 20 4d 61 6c 69 62 75 2d |:"Savory Malibu-|
生成的文件中
。我如何刪除BOM?
THX
酷 - 效果很好,你知道如何添加CRLF - > LF轉換閱讀中的設施? thx如果可以幫助 – timpone 2012-01-11 22:45:31
如果您正在處理大型文件,那麼這種方法(將整個文件存儲在內存中兩次)效率不高。 – 2015-01-07 04:35:03