2015-04-26 58 views
0

我試圖讀取一個文件並在C#和IronPython中處理它,但我遇到了一個小問題。Python/C#,讀取文件到字節數組 - 不完全相同的結果

當我閱讀兩種語言的文件,我得到一個字節數組,這是幾乎相同,但並不完全。

例如,該數組有1552個字節。除了一件事外,他們都是一樣的。任何時候在Python實現中出現值「10」,值「13」出現在C#實現中。除此之外,所有其他字節都是相同的。

這裏大概我在做什麼,以獲得字節:

的Python:

C#:

var bytes = File.ReadAllBytes(@"C:\myfile.blah"); 

也許我選擇了錯誤的編碼?儘管我不這麼認爲,因爲Python實現的行爲與我所期望的相同,並且能夠成功處理文件。

任何想法這裏發生了什麼?

回答

1

(我不知道蟒蛇),但它看起來像你需要通過'rb'標誌:

open('C:\myfile.blah', 'rb') 

Reference

在Windows中, 'B' 附加到模式打開該文件處於二進制模式,所以 也有像'rb','wb'和'r + b'這樣的模式。 Windows上的Python 區分了文本和二進制文件;在讀取或寫入數據 時,文本文件末尾的 字符會稍微自動更改。

  • 注意,值1013給線索的問題是什麼: Line feed是十進制和Carriage return是十進制。
+0

謝謝!這絕對是錯誤的。雖然,現在我遇到了一個類似但不一樣的問題。 (http://stackoverflow.com/questions/29908450/c-sharp-file-readallbytes-gives-seemingly-incorrect-values) 任何機會,你也有那個魔術修復?我正在考慮python-read文件是字節的「正確」排列。 –

相關問題