博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python模拟实现Linux系统unix2dos功能
阅读量:6073 次
发布时间:2019-06-20

本文共 1210 字,大约阅读时间需要 4 分钟。

目标

  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:utf8import sysdef unix2dos(fname):    src_file = fname    dst_file = fname + '.dos'    src_fobj = open(src_file)    dst_fobj = open(dst_file, 'w')    for line in src_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.py 1.txt[root@localhost python]# ls 1.t*1.txt  1.txt.dos

*提示:可以将转换后的文件拿到windows系统上打开看一下是否正常。

 

转载于:https://www.cnblogs.com/xkops/p/6248050.html

你可能感兴趣的文章
LINUX内核调试过程
查看>>
【HDOJ】3553 Just a String
查看>>
Java 集合深入理解(7):ArrayList
查看>>
2019年春季学期第四周作业
查看>>
linux环境配置
查看>>
ASP.NET MVC中从前台页面视图(View)传递数据到后台控制器(Controller)方式
查看>>
lintcode:next permutation下一个排列
查看>>
python 递归
查看>>
一个想法(续二):换个角度思考如何解决IT企业招聘难的问题!
查看>>
tomcat指定配置文件路径方法
查看>>
linux下查看各硬件型号
查看>>
对象合成复用之策略模式
查看>>
linux命令之tail
查看>>
epoll的lt和et模式的实验
查看>>
Flux OOM实例
查看>>
安装DirectX SDK时出现Error Code:s1023 的解决方案
查看>>
图元的属性---小结
查看>>
什么是ccflow公文流程?如何使用ccflow开发一个公文流程?
查看>>
java工作流引擎Jflow父子流程demo
查看>>
tar命令
查看>>