簡體   English   中英

如何通過Python讀寫文件而丟失信息?

[英]How information can be lost by reading and writing files in Python?

我有一個.sql文件。 我使用Python逐行讀取它,並將每一行保存在另一個文件中。 因此,理論上輸入和輸出文件必須相同,但實際上輸出文件比輸入文件小10倍以上。 這是我的方法:

f = open('output.txt','w')
for line in file('input.sql'):
    line = line.replace('\n','')
    print >>f, line
f.close()

有人知道什么時候丟失信息嗎?為什么?

dos文件和unix文件之間存在一些固有的差異。

這樣的區別之一是dos文件中存在^ M字符,而unix文件中不存在。

如果使用的是Linux計算機,則可以通過運行cat -acat -steve命令在文件中看到這些特殊字符。

例如,當使用cat -steve分析dos格式(文件是在Windows OS中創建的)時,語句“ Hi there is Hi there^M$和unix格式的Hi there$

嘗試運行cat -steve <filename>

如果您的輸入文件是一個dos文件,並且您正在linux機器中處理輸出,則很有可能輸出是linux格式化的。 自然,Unix文件比dos文件更緊湊。

編輯:您可以通過運行dos2unix <file_name>unix2dos <file_name>來消除或強制在文件中使用^ M個字符。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM