使用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爬虫之抓取百度贴吧并存储到本地txt文件改进版
Nov 06 Python
python实现文本文件合并
Dec 29 Python
python用装饰器自动注册Tornado路由详解
Feb 14 Python
Django如何配置mysql数据库
May 04 Python
详解python3安装pillow后报错没有pillow模块以及没有PIL模块问题解决
Apr 17 Python
将Python字符串生成PDF的实例代码详解
May 17 Python
Ubuntu18.04下python版本完美切换的解决方法
Jun 14 Python
Python爬取智联招聘数据分析师岗位相关信息的方法
Aug 13 Python
python 实现将Numpy数组保存为图像
Jan 09 Python
Pandas —— resample()重采样和asfreq()频度转换方式
Feb 26 Python
python编写函数注意事项总结
Mar 29 Python
Python之matplotlib绘制折线图
Apr 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使用mysql_fetch_object从查询结果中获取对象集的方法
2015/03/18 PHP
php的扩展写法总结
2019/05/14 PHP
js过滤数组重复元素的方法
2010/09/05 Javascript
6款新颖的jQuery和CSS3进度条插件推荐
2013/03/05 Javascript
js、css、img等浏览器缓存问题的2种解决方案
2013/10/23 Javascript
js跳转页面方法实现汇总
2014/02/11 Javascript
javascript实现简单的html5视频播放器
2015/05/06 Javascript
jQuery ajax时间差导致的变量赋值问题分析
2016/01/22 Javascript
JavaScript+html5 canvas制作色彩斑斓的正方形效果
2016/01/27 Javascript
javascript实现仿百度图片的瀑布流加载效果
2016/04/20 Javascript
jQueryUI Datepicker组件设置日期高亮
2016/10/13 Javascript
Radio 单选JS动态添加的选项onchange事件无效的解决方法
2016/12/12 Javascript
Angular.js中定时器循环的3种方法总结
2017/04/27 Javascript
JavaScript代码执行的先后顺序问题
2017/10/29 Javascript
vue中路由参数传递可能会遇到的坑
2017/12/07 Javascript
浅谈Webpack自动化构建实践指南
2017/12/18 Javascript
JavaScript怎样在删除前添加确认弹出框?
2019/05/27 Javascript
jquery实现购物车基本功能
2019/10/25 jQuery
[28:57]EG vs VGJ.T 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/16 DOTA
Python的组合模式与责任链模式编程示例
2016/02/02 Python
Python获取当前公网ip并自动断开宽带连接实例代码
2018/01/12 Python
python实现换位加密算法的示例
2018/10/14 Python
python版DDOS攻击脚本
2019/06/12 Python
Django Rest framework认证组件详细用法
2019/07/25 Python
Django stark组件使用及原理详解
2019/08/22 Python
使用keras实现Precise, Recall, F1-socre方式
2020/06/15 Python
python matplotlib工具栏源码探析三之添加、删除自定义工具项的案例详解
2021/02/25 Python
Happy Socks英国官网:购买五颜六色的袜子
2020/11/03 全球购物
化学教师自荐信范文
2013/12/28 职场文书
校三好学生主要事迹
2014/01/11 职场文书
初一英语教学反思
2014/01/11 职场文书
大二学生职业生涯规划书
2014/02/05 职场文书
社区服务标语
2014/07/01 职场文书
公安机关正风肃纪剖析材料
2014/10/10 职场文书
反邪教教育心得体会
2016/01/15 职场文书