使用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中xrange用法分析
Apr 15 Python
Python实现根据IP地址和子网掩码算出网段的方法
Jul 30 Python
Python实现采用进度条实时显示处理进度的方法
Dec 19 Python
Python编程实现的简单神经网络算法示例
Jan 26 Python
用python3教你任意Html主内容提取功能
Nov 05 Python
Python socket实现多对多全双工通信的方法
Feb 13 Python
python实现将一维列表转换为多维列表(numpy+reshape)
Nov 29 Python
Windows10+anacond+GPU+pytorch安装详细过程
Mar 24 Python
pandas 像SQL一样使用WHERE IN查询条件说明
Jun 05 Python
解决pycharm安装scrapy DLL load failed:找不到指定的程序的问题
Jun 08 Python
详解Python描述符的工作原理
Jun 11 Python
Python  lambda匿名函数和三元运算符
Apr 19 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
Banner程序
2006/10/09 PHP
新安装的MySQL数据库需要注意的安全知识
2008/07/30 PHP
php使用递归函数实现数字累加的方法
2015/03/16 PHP
php curl中gzip的压缩性能测试实例分析
2016/11/08 PHP
实例讲解php实现多线程
2019/01/27 PHP
如何在Laravel之外使用illuminate组件详解
2020/09/20 PHP
FileUpload 控件 禁止手动输入或粘贴的实现代码
2010/04/07 Javascript
json2.js的初步学习与了解
2011/10/06 Javascript
使用jQuery快速解决input中placeholder值在ie中无法支持的问题
2014/01/02 Javascript
使用jquery解析XML的方法
2014/09/05 Javascript
Vue中添加过渡效果的方法
2017/03/16 Javascript
微信小程序 wx:for的使用实例详解
2017/04/27 Javascript
koa-router源码学习小结
2018/09/07 Javascript
vue微信分享的实现(在当前页面分享其他页面)
2019/04/16 Javascript
详解Vue+Element的动态表单,动态表格(后端发送配置,前端动态生成)
2019/04/20 Javascript
node.js实现上传文件功能
2019/07/15 Javascript
Vue2.4+新增属性.sync、$attrs、$listeners的具体使用
2020/03/08 Javascript
Jquery $.map使用方法实例详解
2020/09/01 jQuery
适用于 Vue 的播放器组件Vue-Video-Player操作
2020/11/16 Javascript
[03:07]DOTA2英雄基础教程 冰霜诅咒极寒幽魂
2013/12/06 DOTA
python的keyword模块用法实例分析
2015/06/30 Python
如何通过命令行进入python
2020/07/06 Python
Jmeter HTTPS接口测试证书导入过程图解
2020/07/22 Python
css3的transform中scale缩放详解
2014/12/08 HTML / CSS
HTML5画渐变背景图片并自动下载实现步骤
2013/11/18 HTML / CSS
印度化妆品购物网站:Nykaa
2018/07/22 全球购物
美国室内和室外装饰花盆购物网站:ePlanters
2019/03/22 全球购物
Etam艾格英国官网:法国著名女装品牌
2019/04/15 全球购物
医学专业五年以上个人求职信
2013/12/03 职场文书
学生会干部自我鉴定2014
2014/09/18 职场文书
法定代表人授权委托书范文
2014/09/22 职场文书
简单租房协议书
2014/10/21 职场文书
小学生作文批改评语
2014/12/25 职场文书
信息技术课教学反思
2016/02/23 职场文书
JavaScript小技巧带你提升你的代码技能
2021/09/15 Javascript
Spring Security动态权限的实现方法详解
2022/06/16 Java/Android