使用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之??碌某?? target=
Sep 12 Python
python装饰器初探(推荐)
Jul 21 Python
python+tkinter编写电脑桌面放大镜程序实例代码
Jan 16 Python
Zookeeper接口kazoo实例解析
Jan 22 Python
python实现俄罗斯方块
Jun 26 Python
python+Splinter实现12306抢票功能
Sep 25 Python
详解Python requests 超时和重试的方法
Dec 18 Python
Python 3.6 -win64环境安装PIL模块的教程
Jun 20 Python
python判断自身是否正在运行的方法
Aug 08 Python
python应用文件读取与登录注册功能
Sep 23 Python
Python解析json代码实例解析
Nov 25 Python
在 Python 中使用 7zip 备份文件的操作
Dec 11 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
hessian 在PHP中的使用介绍
2010/12/13 PHP
thinkphp框架下404页面设置 仅三步
2016/05/14 PHP
PHP7标量类型declare用法实例分析
2016/09/26 PHP
php实现PDO中捕获SQL语句错误的方法
2017/02/16 PHP
PHP定义字符串的四种方式详解
2018/02/06 PHP
prototype 学习笔记整理
2009/07/17 Javascript
yepnope.js 异步加载资源文件
2011/09/08 Javascript
5秒后跳转效果(setInterval/SetTimeOut)
2013/05/03 Javascript
JavaScript将页面表格导出为Excel的具体实现
2013/12/27 Javascript
javascript不同类型数据之间的运算的转换方法
2014/02/13 Javascript
JavaScript中的原型和继承详解(图文)
2014/07/18 Javascript
JavaScript将当前时间转换成UTC标准时间的方法
2015/04/06 Javascript
Jquery中使用show()与hide()方法动画显示和隐藏图片
2015/10/08 Javascript
jQuery+Pdo编写login登陆界面
2016/08/01 Javascript
js HTML5手机刮刮乐代码
2020/09/29 Javascript
BootStrap 下拉菜单点击之后不会出现下拉菜单(下拉菜单不弹出)的解决方案
2016/12/14 Javascript
详解.vue文件中style标签的几个标识符
2018/07/17 Javascript
详解离线安装npm包的几种方法
2018/11/25 Javascript
JS多个表单数据提交下的serialize()应用实例分析
2019/08/27 Javascript
js blob类型url的视频下载问题的解决
2019/11/29 Javascript
JavaScript Image对象实现原理实例解析
2020/08/26 Javascript
[17:45]DOTA2 HEROES教学视频教你分分钟做大人-军团指挥官
2014/06/11 DOTA
python 垃圾收集机制的实例详解
2017/08/20 Python
Python栈算法的实现与简单应用示例
2017/11/01 Python
深入浅析Python科学计算库Scipy及安装步骤
2019/10/12 Python
python3中使用__slots__限定实例属性操作分析
2020/02/14 Python
套娃式文件夹如何通过Python批量处理
2020/08/23 Python
详解Css3新特性应用之过渡与动画
2017/01/10 HTML / CSS
英国著名的小众美容品牌网站:Alyaka
2017/08/08 全球购物
初中地理教学反思
2014/01/11 职场文书
2015元旦标语横幅
2014/12/09 职场文书
餐饮服务员岗位职责
2015/02/09 职场文书
办公室禁烟通知
2015/04/23 职场文书
2019辞职报告范本3篇!
2019/07/23 职场文书
golang正则之命名分组方式
2021/04/25 Golang
Java集成swagger文档组件
2021/06/28 Java/Android