Python 判斷文字檔案中是否含有二進位制資料

2021-10-09 20:25:09 字數 878 閱讀 3725

處理文字檔案時,按行讀取檔案中1的內容,採用如下的讀取**,遇到文字中存在二進位制資料時是會保持的,需要採用二進位制的讀模式。

def

process_data

(line_data)

:print

(line_data)

with

open

("data.txt"

, mode=

"r")

as f:

for line_data in f:

process_data(line_data)

正常處理的1資料都是按照文字檔案一行一行處理的,碰到這種情況,我採用了簡單粗暴的處理方式,在上位機軟體上直接丟出二進位制資料,不處理此類資料。檔案處理之前,需要對整個檔案內容進行掃瞄,判斷是否含有二進位制的資料,根據資料的情況,只要掃瞄到資料值大於127,將此檔案判定為二進位制檔案。

size =

10240

max_value =

0with

open

("data.txt"

, mode=

"rb"

)as f:

part_data = f.read(size)

max_value =

max(part_data)

while part_data:

if max_value >

127:

print

("不支援含有二進位制資料的檔案!"

) exit(0)

else

: part_data = f.read(size)

C 判斷檔案是否文字檔案

今天fix bugs時,碰到乙個關於上傳檔案格式的問題。系統要求上傳.txt,csv格式的,這個可以根據檔案字尾名來過濾。但是如果使用者修改了字尾名來欺騙系統的話又該怎麼解決?比如a.jpg格式的改成a.txt,我現在的程式就無法識別了,雖然在後台可以彈出錯誤,但這個錯誤已經不是fs上定義的錯誤了。...

Delphi中判斷檔案是否為文字檔案的函式

在自己編寫文字檔案讀取函式的時候,你首先會遇到的第乙個問題就是 對於給定的乙個檔名,怎麼知道它所代表磁碟檔案的確是文字檔案?這裡有乙個很簡單的方法 把給定的那個檔案看作是無型別的二進位制檔案,然後順序地讀出這個檔案的每乙個位元組,如果檔案裡有乙個位元組的值等於0,那麼這個檔案就不是文字檔案 反之,如...

判斷文字檔案是否UTF 8編碼

utf 8編碼的文字文件,有的帶有bom byte order mark,位元組序標誌 即0xef,0xbb,0xbf,有的沒有。用windows的notepad編輯的文字儲存是會自動新增bom,我們常用ue編輯器在儲存utf 8編碼的時候也會自動新增bom,notepad 預設設定中儲存utf 8...