Python代码替换\ t \ t \ t \ t \ t \ t \ t \ t \ t \ t \ t \ t \ t \ t \ t

时间:2014-07-30 17:11:40

标签: python tab-delimited-text

我总是用

for line in fileinput.input(input, inplace = 1):
    print line.replace('\t\t', '\t999999999\t'),

所以我认为如下所示的编码将用\ t \ t \ t \ t \ t \ t来替换\ t \ _ \ r \ n

for line in fileinput.input(input, inplace = 1):
    print line.replace('\t\r', '\t999999999\r'),

但令人惊讶的是它没有。

输入是制表符分隔的txt。

\ r \ n有什么特别之处,它不能以通常的方式替换吗?那么如何用python替换它?

===编辑问题====

我试过了。

for line in fileinput.input(input, inplace = 1):
    print line.replace('\t\n', '\t999999999\n'),

有效!

我的输入是用\ r \ n

分隔线条

也许Python读取\ r \ n就像\ n?

也许这就是它起作用的原因?

如果输入仅用\ r \ n分隔行,那么此代码是否有效?

1 个答案:

答案 0 :(得分:3)

\r是行分隔符(的一部分)。在文本模式下读取文件时,Python会对行分隔符进行规范化,仅对行使用\n;阅读时\r\r\n\n取代。

注意:使用fileinput时,您需要从line 剥离换行符,否则您的输出中会出现 double 换行符而不是使用print ..,

for line in fileinput.input(input, inplace = 1):
    line = line.replace('\t\n', '\t999999999\n')
    print line.rstrip('\n')

print ..,为你的所有行添加了额外的空间。