- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章用Python实现换行符转换的脚本的教程由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
很简单的一个东西,在'\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()的一个简单的练习。可以用,但还相当不完善.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
|
#!/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)|(?<!\r)\n"
,
"\r\n"
, temp)
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
|
。
最后此篇关于用Python实现换行符转换的脚本的教程的文章就讲到这里了,如果你想了解更多关于用Python实现换行符转换的脚本的教程的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
我有一个带有 的表格我想在服务器端捕获该文本区域中的任何换行符,并将它们替换为 . 这可能吗? 我尝试设置 white-space:pre在 textarea 上的 CSS,但仍然不够。 最佳答案
我正在通过 FileStream 更改文件(这是一个非常大的文件,我只需要更改标题而不重写整个文件。 该文件可以有 Unix 或 Windows 换行符,知道哪一个对我来说很重要,这样我可以在更新文件
如何以编程方式(不使用 vi)将 DOS/Windows 换行符转换为 Unix 换行符? dos2unix 和 unix2dos 命令在某些系统上不可用。 如何使用 sed、awk 和 tr 等命令
我编辑了一个 BibteX 文件,到目前为止,它显示了我需要的所有信息。 FUNCTION {electronic} { output.bibitem format.btitle "title"
您的软件是否处理来自其他系统的换行符? Linux/BSD linefeed ^J 10 x0A Windows/IBM return linefeed ^M^
我发现 Windows 命令行重定向会自动将 '\n' 替换为 '\r\n'。有什么方法可以避免这种情况?因为在 stdout 或 stderr 重定向之后,如果您将 '\r\n' 写入控制台,您将得
来自 this question ,这个…… lines = foo.value.split(/\r\n|\r|\n/); 是拆分字符串的一种方法,但如何用换行符将其连接回去? 另外,我想知道如果我说
我正在尝试获取新行,但如果我使用 \n 它不起作用。 任何通过向字符串添加一些东西来换行的方法,例如 \r\n (这也不起作用) gfx.DrawString("Project No \n" + te
我有一串数据,中间有换行符。例如: "Product Name \n Product Color \n Product Quantity \n Product Location \n Product
我正在尝试让 scmCommentPrefix 按照 http://maven.apache.org/plugins/maven-release-plugin/faq.html#scmCommentP
如何检查正则表达式 /^\n/在字符串中 blahblahblah 我似乎无法从 php 的 preg_match 获得返回值 1 . 编辑: 由于某种原因,我的坏处是 CR 本身就是我的换行符。
我很难在与文本字符串相同的行上输出变量。当我使用Write-Host而不是Write-Output时,它可以工作。我想使用Write-Output,因为这似乎是最佳做法(将内容保留在管道中),但是Wr
我正在Powershell中工作,以为here字符串中的特定单词着色。除包含回车/换行符的单词外,其他功能均有效。没有这些字符,如何计算单词的长度? 以下是我正在使用的功能和测试数据。我希望第二行上的
我有一个在Powershell中运行的脚本,并且我希望能够在脚本名称和脚本内容本身之间的结果文本文件输出中添加一行。 当前,从下面开始,行$str_msg = $file,[System.IO.Fil
有人知道smalltalk中字符串的换行符是什么吗? 我试图将字符串拆分为单独的行,但我无法弄清楚smalltalk 中的换行符是什么。 即。 string := 'smalltalk is
我有以下 printf 语句: printf ("%s (%s)\n",$row["word"], $row["definition"]); 我正在尝试解决换行符而不是: word defin
这个问题已经有答案了: how to use dotall flag for regex.exec() (4 个回答) 已关闭 7 年前。 字符串内容
我想用 CSS 换行。我正在使用内容。 td:before { content: "Test\A Test2"; } 它不工作。如何正确
考虑一个具有 UNIX 行结尾的 C++ 文件(即 '\x0a' 而不是 "\x0d\x0a")并包含以下原始字符串文字: const char foo[] = R"(hello^M )"; (其中
我有以下 printf 语句: printf ("%s (%s)\n",$row["word"], $row["definition"]); 我正在尝试解决换行符而不是: word defin
我是一名优秀的程序员,十分优秀!