在Ubuntu下编写文本文件(在Ubuntu 14.04和12.04 64位上测试)时,我经历了一些我不明白的事情。 "奇怪"事实是,当第一行中的字符长度(表示为N
)超过8192
时,文件格式会从unix
更改为mac
保存文件后。例如,请参阅以下Python
脚本(也使用C++
进行了测试)。在N >= 8192
时,换行符\n
将在文件中打印为^J
(即mac
文件格式)。但是,如果N < 8192
,该文件将正常运行,即保持unix
格式。
N = 8192
a = '1'*N
with open('test.txt', 'w') as f_out:
f_out.write(a)
f_out.write('\n')
此外,似乎只有第一行很重要:只要第一行中有N < 8192
,无论其他行有多少个字符,文件格式将保持为unix
。例如:
N = 100000
a = '1'*N
with open('test.txt', 'w') as f_out:
f_out.write('0\n')
f_out.write(a)
f_out.write('\n')
有人可以解释这种行为吗?
提前致谢!
更新:我使用vim
打开文件并检查文件格式。