使用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 相关文章推荐
关于Django ForeignKey 反向查询中filter和_set的效率对比详解
Dec 15 Python
PyCharm导入python项目并配置虚拟环境的教程详解
Oct 13 Python
PYTHON发送邮件YAGMAIL的简单实现解析
Oct 28 Python
Numpy与Pytorch 矩阵操作方式
Dec 27 Python
Windows下python3安装tkinter的问题及解决方法
Jan 06 Python
python模拟斗地主发牌
Apr 22 Python
keras在构建LSTM模型时对变长序列的处理操作
Jun 29 Python
python pandas dataframe 去重函数的具体使用
Jul 20 Python
如何基于Python Matplotlib实现网格动画
Jul 20 Python
Python使用Turtle模块绘制国旗的方法示例
Feb 28 Python
PyTorch 如何设置随机数种子使结果可复现
May 12 Python
使用Python获取字典键对应值的方法
Apr 26 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连接MySQL代码的参数说明
2008/06/07 PHP
ajax实现无刷新分页(php)
2010/07/18 PHP
PHP5中使用PDO连接数据库的方法
2010/08/01 PHP
php中convert_uuencode()与convert_uuencode函数用法实例
2014/11/22 PHP
ThinkPHP连接数据库的方式汇总
2014/12/05 PHP
Yii学习总结之安装配置
2015/02/22 PHP
php带抄送和密件抄送的邮件发送方法
2015/03/20 PHP
什么是OneThink oneThink后台添加插件步骤
2016/04/13 PHP
js新闻滚动 js如何实现新闻滚动效果
2013/01/07 Javascript
把Node.js程序加入服务实现随机启动
2015/06/25 Javascript
浅谈JavaScript的Polymer框架中的behaviors对象
2015/07/29 Javascript
下雪了 javascript实现雪花飞舞
2020/08/02 Javascript
JavaScript的React Web库的理念剖析及基础上手指南
2016/05/10 Javascript
通过javascript进行UTF-8编码的实现方法
2016/06/27 Javascript
JSON 必知必会 观后记
2016/10/27 Javascript
JS回调函数基本定义与用法实例分析
2017/05/24 Javascript
vue loadmore 组件滑动加载更多源码解析
2017/07/19 Javascript
webpack学习笔记之代码分割和按需加载的实例详解
2017/07/20 Javascript
使用vue根据状态添加列表数据和删除列表数据的实例
2018/09/29 Javascript
Vue搭建后台系统需要注意的问题
2019/11/08 Javascript
微信小程序中的列表切换功能实例代码详解
2020/06/09 Javascript
在vue中axios设置timeout超时的操作
2020/09/04 Javascript
Nuxt pages下不同的页面对应layout下的页面布局操作
2020/11/05 Javascript
使用Python对IP进行转换的一些操作技巧小结
2015/11/09 Python
Python制作简单的网页爬虫
2015/11/22 Python
教你使用python实现微信每天给女朋友说晚安
2018/03/23 Python
python+opencv实现摄像头调用的方法
2019/06/22 Python
django中上传图片分页三级联动效果的实现代码
2019/08/30 Python
来自世界上最好大学的在线课程:edX
2018/10/16 全球购物
车辆转让协议书
2014/04/15 职场文书
2015年人力资源部工作总结
2015/04/30 职场文书
2015教师年度思想工作总结
2015/04/30 职场文书
北京青年观后感
2015/06/15 职场文书
《黄道婆》教学反思
2016/02/22 职场文书
教你用python实现一个无界面的小型图书管理系统
2021/05/21 Python
为什么MySQL不建议使用SELECT *
2022/04/03 MySQL