使用python实现unix2dos和dos2unix命令的例子


Posted in Python onAugust 13, 2019

由于工作电脑网络限制无法安装unix2dos和dos2unix命令转换文件,自己实现一个

直接上代码,保存为python文件如unix2dos.py然后使用命令

unix2dos.py {unix2dos|dos2unix} {dirname|filename}
#! /usr/bin/env python
# coding=utf-8
 
import os
import sys
 
try:
  input = raw_input
except:
  pass
 
def usage():
  print('Usage:')
  print('\t %s' % ('unix2dos.py {unix2dos|dos2unix} {dirname|filename}'))
 
def err_exit(msg):
  if msg: print('%s' % msg)
  usage()
  sys.exit(0)
 
def getfiles(root):
  for dirpath, dirnames, filenames in os.walk(root):
    for filename in filenames:
      yield os.path.join(dirpath, filename)
 
def format_file(file, toformat='unix2dos'):
  print('Formatting %s:\t%s' % (toformat, file))
  if not os.path.isfile(file):
    print('ERROR: %s invalid normal file' % file)
    return
  if toformat == 'unix2dos':
    line_sep = '\r\n'
  else:
    line_sep = '\n'
  with open(file, 'r') as fd:
    tmpfile = open(file+toformat, 'w+b')
    for line in fd:
      line = line.replace('\r', '')
      line = line.replace('\n', '')
      tmpfile.write(line+line_sep)
    tmpfile.close()
    os.rename(file+toformat, file)
 
def uni_format_proc(filename, toformat):
  if not toformat or toformat not in ['unix2dos', 'dos2unix']:
    err_exit('ERROR: %s: Invalid format param' % (toformat))
  if not filename or not os.path.exists(filename):
    err_exit('ERROR: %s: No such file or directory' % (filename))
  if os.path.isfile(filename):
    format_file(filename, toformat)
    return
  if os.path.isdir(filename):
    for file in getfiles(filename):
      uni_format_proc(file, toformat)
 
if __name__ == '__main__':
  if len(sys.argv) != 3:
    err_exit('ERROR: Invalid arguments')
  uni_format_proc(filename=sys.argv[2], toformat=sys.argv[1])

以上这篇使用python实现unix2dos和dos2unix命令的例子就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python中使用PDB库调试程序
Apr 05 Python
详解Python发送邮件实例
Jan 10 Python
python 环境变量和import模块导入方法(详解)
Jul 11 Python
详解如何在python中读写和存储matlab的数据文件(*.mat)
Feb 24 Python
利用Python如何制作好玩的GIF动图详解
Jul 11 Python
numpy 计算两个数组重复程度的方法
Nov 07 Python
Python 通过打码平台实现验证码的实现
May 13 Python
python对csv文件追加写入列的方法
Aug 01 Python
python中的线程threading.Thread()使用详解
Dec 17 Python
python实现俄罗斯方块小游戏
Apr 24 Python
Python替换NumPy数组中大于某个值的所有元素实例
Jun 08 Python
python 利用panda 实现列联表(交叉表)
Feb 06 Python
Python编写带选项的命令行程序方法
Aug 13 #Python
使用python模拟命令行终端的示例
Aug 13 #Python
在macOS上搭建python环境的实现方法
Aug 13 #Python
解决Mac下使用python的坑
Aug 13 #Python
python 接口实现 供第三方调用的例子
Aug 13 #Python
python 爬取学信网登录页面的例子
Aug 13 #Python
利用anaconda作为python的依赖库管理方法
Aug 13 #Python
You might like
dede3.1分页文字采集过滤规则详说(图文教程)续四
2007/04/03 PHP
PHP中让curl支持sock5的代码实例
2015/01/21 PHP
one.php 多项目、函数库、类库 统一为一个版本的方法
2020/08/24 PHP
document.body.scrollTop 值总为0的解决方法 比较常见的标准问题
2009/11/30 Javascript
js实现页面转发功能示例代码
2013/08/05 Javascript
详解Angularjs filter过滤器
2016/02/06 Javascript
深入浅析search 搜索框的写法
2016/08/02 Javascript
jquery的checkbox,radio,select等方法小结
2016/08/30 Javascript
JS前端加密算法示例
2016/12/22 Javascript
微信小程序 UI与容器组件总结
2017/02/21 Javascript
Vue.js结合bootstrap实现分页控件
2017/03/10 Javascript
ionic App问题总结系列之ionic点击系统返回键退出App
2017/08/19 Javascript
使用vue-cli+webpack搭建vue开发环境的方法
2017/12/22 Javascript
JavaScript中EventLoop介绍
2018/01/22 Javascript
如何在wxml中直接写js代码(wxs)
2019/11/14 Javascript
vue项目中使用vue-layer弹框插件的方法
2020/03/11 Javascript
JavaScript创建表格的方法
2020/04/13 Javascript
解决vue中el-tab-pane切换的问题
2020/07/19 Javascript
[03:15]2014DOTA2国际邀请赛 专访国士无双信心满满
2014/07/12 DOTA
Python字符遍历的艺术
2008/09/06 Python
粗略分析Python中的内存泄漏
2015/04/23 Python
用Python写冒泡排序代码
2016/04/12 Python
用Python写王者荣耀刷金币脚本
2017/12/21 Python
Python OpenCV处理图像之图像直方图和反向投影
2018/07/10 Python
python 循环读取txt文档 并转换成csv的方法
2018/10/26 Python
使用虚拟环境打包python为exe 文件的方法
2019/08/29 Python
python脚本之一键移动自定格式文件方法实例
2019/09/02 Python
python+opencv3生成一个自定义纯色图教程
2020/02/19 Python
Python实现AI换脸功能
2020/04/10 Python
CSS3 实现侧边栏展开收起动画
2014/12/22 HTML / CSS
经典c++面试题四
2015/05/14 面试题
端口镜像是怎么实现的
2014/03/25 面试题
财务会计专业毕业生自荐信
2013/10/02 职场文书
医学求职信
2014/05/28 职场文书
汤姆索亚历险记读书笔记
2015/06/29 职场文书
Go缓冲channel和非缓冲channel的区别说明
2021/04/25 Golang