首页 > 技术文章 > 将dos格式文件转换为unix格式

cord 2018-08-20 21:12 原文

在windows下换行符是\r\n,表示回到行首并换到下一行

而unix系统中换行符是\n

这样就存在一个问题,在windows上的文档到了unix上可能就无法使用了

针对这个情况有几种解决办法:

1.用vim修改文档的文本格式(fileformat)

:set ff		   #查看当前文本格式
:set ff=unix   #设置成unix格式

2.使用ide修改文本格式

notepad++:

右下角点击Windows(CR LF)即可切换

idea:

同样右下角

3.python脚本生成文件的时候指定换行符类型

如果使用python生成文本,则可以在生成文件的时候指定newline达到这个效果

    with open("test.txt", 'w', newline='\n') as out:
        out.write("hello world")

这里说明一下open()方法中newline选项的作用:

在读取文件的时候,如果newline为默认值None,则换行符为通用模式,读取每一行数据的时候遇到\n,\r,\r\n都会结束,并且在返回的时候都会转换为\n,如果newline的值为''或者\n,就不会有转换发生。

在写入文件的时候,如果newline为默认值None,则\n写入后会转换为平台依赖的换行符,比如如果是windows平台则会转换为\r\n;如果newline的值为''或者\n,则不会有转换发生。如果是其他字符的话,则所有写入的\n都会转换为指定的字符。

推荐阅读