[英]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 -a
或cat -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.