使用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读写excel的方法
Nov 18 Python
详解Python的Django框架中Manager方法的使用
Jul 21 Python
python高手之路python处理excel文件(方法汇总)
Jan 07 Python
Python函数中*args和**kwargs来传递变长参数的用法
Jan 26 Python
详解Python之数据序列化(json、pickle、shelve)
Mar 30 Python
用pickle存储Python的原生对象方法
Apr 28 Python
CentOS 7下Python 2.7升级至Python3.6.1的实战教程
Jul 06 Python
python交互式图形编程实例(二)
Nov 17 Python
TensorFlow实现卷积神经网络
May 24 Python
pygame游戏之旅 添加游戏暂停功能
Nov 21 Python
Python银行系统实战源码
Oct 25 Python
Python更新所有已安装包的操作
Feb 13 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
PHP filter_var() 函数 Filter 函数
2012/04/25 PHP
Codeigniter(CI)框架分页函数及相关知识
2014/11/03 PHP
简单谈谈PHP面向对象之标识对象
2017/06/27 PHP
Yii2第三方类库插件Imagine的安装和使用
2017/07/06 PHP
JavaScript 面向对象的之私有成员和公开成员
2010/05/04 Javascript
判断对象是否Window的实现代码
2012/01/10 Javascript
二叉树的非递归后序遍历算法实例详解
2014/02/07 Javascript
javascript修改IMG标签的src问题
2014/03/28 Javascript
js使用split函数按照多个字符对字符串进行分割的方法
2015/03/20 Javascript
js日期范围初始化得到前一个月日期的方法
2015/05/05 Javascript
7个有用的jQuery代码片段分享
2015/05/19 Javascript
JavaScript中Number.MAX_VALUE属性的使用方法
2015/06/04 Javascript
HTML5 JS压缩图片并获取图片BASE64编码上传
2020/11/16 Javascript
js实现小窗口拖拽效果
2016/12/03 Javascript
JavaScript中数组Array方法详解
2017/02/27 Javascript
对存在JavaScript隐式类型转换的四种情况的总结(必看篇)
2017/08/31 Javascript
Vue-CLI 3.X 部署项目至生产服务器的方法
2019/03/22 Javascript
layui自定义ajax左侧三级菜单
2019/07/26 Javascript
vue.js this.$router.push获取不到params参数问题
2020/03/03 Javascript
如何在selenium中使用js实现定位
2020/08/18 Javascript
Python中死锁的形成示例及死锁情况的防止
2016/06/14 Python
Python实现动态图解析、合成与倒放
2018/01/18 Python
Sanic框架配置操作分析
2018/07/17 Python
python 中文件输入输出及os模块对文件系统的操作方法
2018/08/27 Python
在Python 不同级目录之间模块的调用方法
2019/01/19 Python
利用Python绘制有趣的万圣节南瓜怪效果
2019/10/31 Python
python3连接mysql获取ansible动态inventory脚本
2020/01/19 Python
Python Selenium安装及环境配置的实现
2020/03/17 Python
英国领先的珍珠首饰品牌:Orchira
2016/09/11 全球购物
美国经典刺绣和字母儿童服装特卖:Smocked Auctions
2018/07/16 全球购物
实习教师自我鉴定
2013/12/09 职场文书
大学生通用个人自我评价
2014/04/27 职场文书
大学生社会实践方案
2014/05/11 职场文书
事业单位工作人员2015年度思想工作总结
2015/10/15 职场文书
祝福语集锦:给百岁老人祝寿贺词
2019/11/19 职场文书
Qt自定义Plot实现曲线绘制的详细过程
2021/11/02 Python