编写第一行长度> = 8K的txt文件会将文件格式从unix转换为mac

时间:2015-09-15 05:56:30

标签: unix format file-format

在Ubuntu下编写文本文件(在Ubuntu 14.04和12.04 64位上测试)时,我经历了一些我不明白的事情。 &#34;奇怪&#34;事实是,当第一行中的字符长度(表示为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打开文件并检查文件格式。

0 个答案:

没有答案