我有.sql
个文件。我使用Python逐行读取它并将每行保存在另一个文件中。因此,理论上输入和输出文件必须相同,但实际上输出文件比输入文件小10倍以上。我就是这样做的:
f = open('output.txt','w')
for line in file('input.sql'):
line = line.replace('\n','')
print >>f, line
f.close()
有人知道信息丢失的阶段和原因吗?
答案 0 :(得分:0)
dos文件和unix文件之间存在一些固有的差异。
其中一个区别是dos文件中存在^ M字符,这在unix文件中不存在。
如果您使用的是Linux计算机,则可以通过运行cat -a
或cat -steve
命令在文件中查看这些特殊字符。
例如,当使用cat -steve for dos格式(文件是在Windows OS中创建)和Hi there
以unix格式进行分析时,语句Hi there^M$
为Hi there$
。
尝试运行cat -steve <filename>
如果您的输入文件是dos文件,并且您正在linux机器中处理输出,则输出有可能是linux格式的。当然,unix文件比dos文件更紧凑。
编辑:您可以通过运行dos2unix <file_name>
或unix2dos <file_name>
来删除或强制执行文件中的^ M个字符。