使用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模拟新浪微博登陆功能(新浪微博爬虫)
Dec 24 Python
pandas 取出表中一列数据所有的值并转换为array类型的方法
Apr 11 Python
python 获取字符串MD5值方法
May 29 Python
浅析Python 3 字符串中的 STR 和 Bytes 有什么区别
Oct 14 Python
python实现指定字符串补全空格、前面填充0的方法
Nov 16 Python
python使用zip将list转为json的方法
Dec 31 Python
bluepy 一款python封装的BLE利器简单介绍
Jun 25 Python
python SQLAlchemy的Mapping与Declarative详解
Jul 04 Python
关于PyTorch源码解读之torchvision.models
Aug 17 Python
Python unittest单元测试框架及断言方法
Apr 15 Python
python 弧度与角度互转实例
Apr 15 Python
深入了解Python 变量作用域
Jul 24 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
WordPress主题中添加文章列表页页码导航的PHP代码实例
2015/12/22 PHP
Yii2实现UploadedFile上传文件示例
2017/02/15 PHP
ASP中进行HTML数据及JS数据编码函数
2009/11/11 Javascript
使用Jquery Aajx访问WCF服务(GET、POST、PUT、DELETE)
2012/03/16 Javascript
提高javascript效率 一次判断,而不要次次判断
2012/03/30 Javascript
js函数调用常用方法详解
2012/12/03 Javascript
nodejs教程 安装express及配置app.js文件的详细步骤
2013/05/11 NodeJs
谷歌浏览器不支持showModalDialog模态对话框的解决方法
2014/09/22 Javascript
jQuery的remove()方法使用详解
2015/08/11 Javascript
基于jQuery实现在线选座之高铁版
2015/08/24 Javascript
JS异步加载的三种实现方式
2017/03/16 Javascript
vue router动态路由下让每个子路由都是独立组件的解决方案
2018/04/24 Javascript
Puppeteer 爬取动态生成的网页实战
2018/11/14 Javascript
vue插件draggable实现拖拽移动图片顺序
2018/12/01 Javascript
JavaScript学习笔记之基于定时器实现图片无缝滚动功能详解
2019/01/09 Javascript
原理深度解析Vue的响应式更新比React快
2020/04/04 Javascript
[02:52]2014DOTA2西雅图国际邀请赛 CIS战队巡礼
2014/07/07 DOTA
[01:04:05]Mineski vs TNC 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/16 DOTA
python登录pop3邮件服务器接收邮件的方法
2015/04/30 Python
Linux中安装Python的交互式解释器IPython的教程
2016/06/13 Python
python3.5仿微软计算器程序
2020/03/30 Python
django限制匿名用户访问及重定向的方法实例
2018/02/07 Python
Python2.7环境Flask框架安装简明教程【已测试】
2018/07/13 Python
Python实现的KMeans聚类算法实例分析
2018/12/29 Python
python构建指数平滑预测模型示例
2019/11/21 Python
pycharm新建Vue项目的方法步骤(图文)
2020/03/04 Python
Python动态导入模块:__import__、importlib、动态导入的使用场景实例分析
2020/03/30 Python
python时间序列数据转为timestamp格式的方法
2020/08/03 Python
详解CSS3 用border写 空心三角箭头 (两种写法)
2017/09/29 HTML / CSS
详解CSS3选择器的使用方法汇总
2015/11/24 HTML / CSS
内容编辑个人求职信
2013/12/10 职场文书
社保缴纳证明申请书
2014/11/03 职场文书
无保留意见审计报告
2015/06/05 职场文书
贫困生证明范文
2015/06/16 职场文书
迎新年主持词
2015/07/06 职场文书
SQLServer之常用函数总结详解
2021/08/30 SQL Server