2 案例2:编写unix2dos的程序
2.1 问题
创建unix2dos.py脚本,要求如下:
Windows文本文件的行结束标志是\r\n
类unix文本文件的行结束标志是\n
编写程序,将unix文本文件格式转换为windows文本文件的格式
2.2 方案
更改新文件格式,利用复制文件方式,将原文件内容写入新文件
将上传的实参(即unix文件名)转化为windows文本格式(即后缀增加.txt),用with方法打开原文件,用with方法以写方式打开新文件,用for循环遍历原文件将遍历结果写入新文件,如果上诉三方面判断都结束,将符合标识符命名规则字符返回,将以上所有功能封,如下两点需要注意:
1.调用unix2dos ()函数时上传文件名实参,是利用sys.argv[]参数,在命令行调用的时候由系统传递给程序,这个变量其实是一个List列表,用于保存命令行上的参数,argv[0] 一般是“被调用的脚本文件名或全路径”,argv[1]和以后就是传入的系统命令参数
2.遍历原文件内容时, 用rstrip() 删除原文件unix文件行结束标志,增加新文件行结束标记后,再将内容写入到新文件
2.3 步骤
实现此案例需要按照如下步骤进行。
步骤一:编写脚本
[root@localhost day05]# vim unix2dos.py
#!/usr/bin/env python3
import sys
def unix2dos(fname):
dst_fname = fname + '.txt'
with open(fname) as src_fobj:
with open(dst_fname, 'w') as dst_fobj:
for line in src_fobj:
line = line.rstrip('\r\n') + '\r\n'
dst_fobj.write(line)
if __name__ == '__main__':
unix2dos(sys.argv[1]) # python3 unix2dos.py unix2dos.py
步骤二:测试脚本执行
[root@localhost day05]# ls
unix2dos.py
[root@localhost day05]# python3 unix2dos.py unix2dos.py
[root@localhost day04]# ls
unix2dos.py unix2dos.py.txt