目标
1.Linux系统与windows系统文件系统换行符问题
2.实现unix文件转换成dos文件格式
1.Linux系统与windows系统文件系统换行符
•关于回车|换行的来历
在计算机还没有出现之前,有一种电传打字机(Teletype Model 33),每秒钟可以打10个字符。但是它存在一个问题,就是打完一行换行的时候,要用去0.2秒,正好可以打两个字符。如果在这0.2秒里面,又有新的字符传过来,那么新传过来的这个字符将丢失。于是,研制人员想了个办法解决这个问题,就是在每行后面加两个表示结束的字符。一个叫做“回车”,告诉打字机把打印头定位在左边界;另一个叫做“换行”,告诉打字机把纸向下移一行。这就是回车|换行的来历
•回车|换行标识符问题
后来计算机出现后,回车和换行被应用到计算机上,但是由于寄存器的价格非常贵,有科学家觉得末尾加2个字符太浪费空间,一个字符能够解决,此时出现分歧。类unix系统使用回车标识回车换行'\n', windows系统继续使用回车换行标识回车换行'\r\n'
•问题
类unix文件拷贝到windows系统,就会丢失换行标识
windows文件拷贝到类unix系统,就会出现"^M"标识
2.实现unix文件转换成dos文件格式
代码如下:
[root@localhost python]# cat u2d.py
#!/usr/bin/env python#coding:utf8
importsysdefunix2dos(fname):
src_file=fname
dst_file= fname + '.dos'src_fobj=open(src_file)
dst_fobj= open(dst_file, 'w')for line insrc_fobj:
dst_fobj.write(line.rstrip('\r\n') + '\r\n')
src_fobj.close()
dst_fobj.close()if __name__ == "__main__":
unix2dos(sys.argv[1])
•运行代码,测试效果
[root@localhost python]# ls 1.*
1.py 1.txt
[root@localhost python]#ls 1.t*
1.txt
[root@localhost python]# python u2d.py1.txt
[root@localhost python]#ls 1.t*
1.txt 1.txt.dos
*提示:可以将转换后的文件拿到windows系统上打开看一下是否正常。