很简单的一个东西,在'\n'、'\r\n'、'\r'3中换行符之间进行转换。

用法

代码如下:

usage: eol_convert.py [-h] [-r] [-m {u,p,w,m,d}] [-k] [-f]

filename [filename ...]

Convert Line Ending

positional arguments:

filename file names

optional arguments:

-h, --help show this help message and exit

-r walk through directory

-m {u,p,w,m,d} mode of the line ending

-k keep output file date

-f force conversion of binary files

源码

这只能算是argparse模块和os模块的utime()、stat()、walk()的一个简单的练习。可以用,但还相当不完善。

#!/usr/bin/env python

#2009-2011 dbzhang800

import os

import re

import os.path

def convert_line_endings(temp, mode):

if mode in ['u', 'p']: #unix, posix

temp = temp.replace('\r\n', '\n')

temp = temp.replace('\r', '\n')

elif mode == 'm': #mac (before Mac OS 9)

temp = temp.replace('\r\n', '\r')

temp = temp.replace('\n', '\r')

elif mode == 'w': #windows

temp = re.sub("\r(?!\n)|(?

return temp

def convert_file(filename, args):

statinfo = None

with file(filename, 'rb+') as f:

data = f.read()

if '\0' in data and not args.force: #skip binary file... ?

print '%s is a binary file?, skip...' % filename

return

newdata = convert_line_endings(data, args.mode)

if (data != newdata):

statinfo = os.stat(filename) if args.keepdate else None

f.seek(0)

f.write(newdata)

f.truncate()

if statinfo:

os.utime(filename, (statinfo.st_atime, statinfo.st_mtime))

print filename

def walk_dir(d, args):

for root, dirs, files in os.walk(d):

for name in files:

convert_file(os.path.join(root, name), args)

if __name__ == '__main__':

import argparse

import sys

parser = argparse.ArgumentParser(description='Convert Line Ending')

parser.add_argument('filename', nargs='+', help='file names')

parser.add_argument('-r', dest='recursive', action='store_true',

help='walk through directory')

parser.add_argument('-m', dest='mode', default='d', choices='upwmd',

help='mode of the line ending')

parser.add_argument('-k', dest='keepdate', action='store_true',

help='keep output file date')

parser.add_argument('-f', dest='force', action='store_true',

help='force conversion of binary files')

args = parser.parse_args()

if args.mode == 'd':

args.mode = 'w' if sys.platform == 'win32' else 'p'

for filename in args.filename:

if os.path.isdir(filename):

if args.recursive:

walk_dir(filename, args)

else:

print '%s is a directory, skip...' % filename

elif os.path.exists(filename):

convert_file(filename, args)

else:

print '%s does not exist' % filename

时间: 2015-04-15

python怎么换行继续写脚本_用Python实现换行符转换的脚本的教程相关推荐

  1. python pygame模块怎么写游戏_使用 Python 和 Pygame 模块构建一个游戏框架

    这系列的第一篇通过创建一个简单的骰子游戏来探究 Python.现在是来从零制作你自己的游戏的时间. 在我的这系列的第一篇文章 中, 我已经讲解如何使用 Python 创建一个简单的.基于文本的骰子游戏 ...

  2. python解释器用什么写的_用 Python 从零开始写一个简单的解释器(3)

    到目前为止,我们已经为解释器写了一个词法分析器和 一个解析器组合子库.在这里,我们会创建抽象语法树(AST)的数据结构,使用组合子库写一个解析器,组合子库可以实现将词法分析器返回的标记列表转换为一个抽 ...

  3. python向excel隔行写数据_【Python】将每日新增数据写入Excel

    一.背景: 因为自己从网上获取了一些金融数据,也没有配置数据库,所以目前暂时是将数据以增量的形式存储在自己的OneDrive上. 二.代码演绎:导入相关数据包 import pandas as pd ...

  4. python写魔兽世界脚本_用python bat写软件安装脚本 + HM NIS Edit自动生成软件安装脚本...

    2019-03-11更新:原来NSIS脚本也可以禁用64位文件操作重定向的! 1.在安装脚本的开始处定义 LIBRARY_X64. !include "MUI.nsh" !incl ...

  5. python网络游戏脚本_用Python写一个游戏脚本,你会吗?

    学习python有一段时间了,由于python语言的强大和简洁,是一个不错的脚本语言,就准备做个游戏脚本练练手.如果你也想多练项目实战.可以去小编的Python交流.裙 :一久武其而而流一思(数字的谐 ...

  6. python代码怎么换行继续写_python代码太长怎么换行

    在需要换行的代码后面加一个 / 回车 python怎么换行啊??我是一只崭新的程序猿...在学python..下了3.4,,,打开IDLE是个白其实我想喷上面,但是出于理智,他可能是没理解你的意思或者 ...

  7. python开发的游戏手机上玩_利用Python开发游戏脚本,就凭一个设定,玩家直接起飞!...

    前言 最近在玩儿公主连结,之前也玩儿过阴阳师这样的游戏,这样的游戏都会有个初始号这样的东西,或者说是可以肝的东西. 当然,作为一名程序员,肝这种东西完全可以用写代码的方式帮我们自动完成.游戏脚本其实并 ...

  8. python 首次登陆outlook 脚本_记Python“用户环境”的一次完美应用

    在之前写过一篇关于虚拟环境使用的文章,但是还没有好好的介绍一下 Python 的用户环境,原因是自己一直没遇到要使用 用户环境 的使用场景,所以就一直懒得写.恰巧这两天,自己遇到了一个使用用户环境的体 ...

  9. python 脚本_基于Python的ArcGIS脚本编程知识点总结

    1. ArcGIS中的组件-ArcObjects Esri主要使用C++开发ArcGIS软件,在ArcGIS软件中,所有的组件或者对象被统称为ArcObjects. ArcObjects部分知识点如下 ...

  10. python代码写名字_【python】【名字】是什么?,Pythonname

    前言 在我们浏览一下 python 文件或者自己写 python 代码的时候,时常会在代码的最后加上这样的一行代码 if __name__ == '__main__': func_name() 那么这 ...

最新文章

  1. python3.6安装scrapy-win7安装python3.6.1及scrapy
  2. RHEL6入门系列之十三,阶段练习1
  3. 每一个div元素分析 php,PHP初入,div知识点整理(特效字体等元素的使用整理)...
  4. 计算机硬件价钱分配,电脑基础知识计算机硬件基础课件.ppt
  5. PyTorch机器学习从入门到实践-CH1
  6. 使用display:none和visibility:hidden隐藏的区别
  7. Mac不装软件校验MD5和SHA1值
  8. 重装linux服务器简易流程
  9. 基于JAVA+SpringMVC+Mybatis+MYSQL的流浪宠物猫狗救助系统
  10. linux下启动某个进程
  11. pip install rrdtool
  12. 服务器硬盘数据备份到nas,群晖NAS教程第五节:如何备份 Synology NAS
  13. oracle 省份三个字的,中国所有省份的简称是什么?
  14. C++ switch怎么用
  15. 孤岛双馈风电机组数学模型matlab,大型变速双馈风电机组动态稳定性仿真分析
  16. ANSVC无功补偿装置在南京某高等院校中的应用-安科瑞华楠
  17. 【新知实验室】手把手实现腾讯云音视频应用
  18. 利用YOLOV5实现手语识别
  19. java一元多项式减法运算_一元多项式的表示及加减乘除运算
  20. 图像质量评价学习笔记02:IQA模型性能评价指标(PLCC、SROCC、KROCC、RMSE)

热门文章

  1. sliverlight--无法启动调试。
  2. 通过DLL使两个工程公用部分代码
  3. [Swift]LeetCode513. 找树左下角的值 | Find Bottom Left Tree Value
  4. 蓝桥杯Java输入输出相关
  5. python之Django部署
  6. 25个国外优秀电子商务网站设计案例
  7. 人脸识别技术新突破,网友:匪徒带着面罩呢?
  8. ARM Cortex-M0微控制器汇编语言之分支条件的典型用法
  9. Python爬虫学到什么程度就可以去找工作了?
  10. USB启动盘制作的几种方式