2013-07-10 64 views
0

我在讀一個壓縮文件;未壓縮的數據應該被解釋爲UTF-8。所以我有點喜歡同時使用hook_compressedhook_encoded,在fileinputopenhook參數。但是,我沒有看到堆疊/包裝它們的方法。python fileinput的openhook選項可以將hook_compressed和hook_encoded結合在一起嗎?

在關閉的機會現有鉤了類似文件的對象,不只是文件名,我這個做了嘗試:

def myhook(file,mode): 
    return (fileinput.hook_encoded("utf-8"))(fileinput.hook_compressed(file,mode),mode) 

...但沒有這樣的運氣。

回答

1

相當老的問題,但hook_encoded只使用codecs模塊。因此,您可以使用fileinput.input(mode="rb", open_hook=fileinput.hook_compressed),然後使用codecs.decode對結果進行解碼。然而,如果你的應用程序的任何部分將此傳遞給知道如何處理編碼字符串,那麼你沒事做什麼。

或者您是否自己找到其他答案?

相關問題