Python模拟实现Linux系统unix2dos功能
目标
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 import sys def 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 .*
.py .txt
[root@localhost python]# ls .t*
.txt
[root@localhost python]# python u2d.py .txt
[root@localhost python]# ls .t*
.txt .txt.dos
*提示:可以将转换后的文件拿到windows系统上打开看一下是否正常。
Python模拟实现Linux系统unix2dos功能的更多相关文章
- python 1: 解决linux系统下python中的matplotlib模块内的pyplot输出图片不能显示中文的问题
问题: 我在ubuntu14.04下用python中的matplotlib模块内的pyplot输出图片不能显示中文,怎么解决呢? 解决: 1.指定默认编码为UTF-8: 在python代码开头加入如下 ...
- python环境搭建-Linux系统下python2.6.6升级python3.5.2步骤
[root@template ~]# python -v # /usr/lib64/python2.6/encodings/utf_8.pyc matches /usr/lib64/python2.6 ...
- python环境搭建-Linux系统下python2.7升级python3.5.2步骤
首先Python 查看版本 , 在Linux下特别注意权限问题,创建目录时候切记给予权限 如果是 ubnutu 请使用首先切换到 sudo su , 否则 make install 会出现问题.. 升 ...
- Python模拟百度自动输入搜索功能
# 访问百度,模拟自动输入搜索 # 代码中引入selenium版本为:3.4.3 # 通过Chrom浏览器访问发起请求 # Chrom版本:59 ,chromdriver:2.3 # 需要对应版本的C ...
- 手机运行Linux系统,可以办公,可以上网,太爽了!
之前用 Termux 编程一直都是在黑乎乎的命令行敲代码,有多少人知道其实可以在手机上用 Termux 构建一个包含桌面环境的 Linux 系统呢. 这个构建出的 linux 系统,可以显示出桌面,可 ...
- Python脚本破解Linux口令(crypt模块)
环境 Kali Linux ,python版本2.7.13 . 我们利用Linux系统中的 crypt 模块模拟了Linux系统中用户密码的加密,在Windows中是不存在这个库的. 在Linux系统 ...
- seaborn(matplotlib)画图,linux系统中文乱码等问题解决
data = pd.read_json(json.dumps(issue_dpl)) # set pic size plt.figure(figsize=(13, 5)) sns.set_style( ...
- 《手把手教你构建自己的 Linux 系统》学习笔记(1)
第二章.基础准备--Linux 系统定制原理 Linux 系统的组成及架构 共享库和静态库 在 Linux 系统中,函数库包含两种形式:共享库和静态库. 共享库 共享库在程序运行时,为其提供所需要的函 ...
- Mac或者linux系统自动加载python tab补全功能
因为mac OS属于类unix系统,所以基本和linux系统使用相差不大,只是用户登陆时自动执行环境变量文件的区别 mac系统: ShanedeMBP:login_api shane$ vi ~/.b ...
随机推荐
- poj 1651 Multiplication Puzzle
题目链接:http://poj.org/problem?id=1651 思路:除了头尾两个数不能取之外,要求把所有的数取完,每取一个数都要花费这个数与相邻两个数乘积的代价,需要这个代价是最小的 用dp ...
- AngularJS 事件
AngularJS 有自己的 HTML 事件指令. ng-click指令: ng-click 指令定义了 AngularJS 点击事件. <!DOCTYPE html> <html& ...
- 利用Queue队列实现FIFO的算法
#!/usr/bin/env python # -*- coding: utf-8 -*- # learn <<Problem Solving with Algorithms and Da ...
- sqlmap的安装方法
1.安装Python2.7,设置Python环境变量
- 《DSP using MATLAB》示例Example5.9
代码: n = 0:10; x = 10*(0.8) .^ n; y = x(mod_1(-n,11)+1); %% ----------------------------------------- ...
- Python lambda函数
python允许定义单行的小函数,定义lambda函数的形式如下: lambda 参数:表达式lambda函数默认返回表达式的值,可接收任意个参数,包括可选参数,但是表达式只有一个.
- DirectShow
1 最简单的DirectShow应用程序 — 播放视频 1.简介DirectShow是DirectX中的一套处理媒体播放.音视频采集的开发包,在DirectX SDK Summer 2004(Dire ...
- AMR 转mp3 失败
private void changeToMp3(String sourcePath) { File source = new File(sourcePath); String mp3TargetPa ...
- 【BZOJ4008】[HNOI2015]亚瑟王 期望
[BZOJ4008][HNOI2015]亚瑟王 Description 小 K 不慎被 LL 邪教洗脑了,洗脑程度深到他甚至想要从亚瑟王邪教中脱坑. 他决定,在脱坑之前,最后再来打一盘亚瑟王.既然是最 ...
- [Note] Software Testing
Mocking: Difference between error and failure: TDD: BDD: