使用python解析文件以查找其中的所有回车符'\ r'

时间:2015-03-18 04:54:26

标签: python

我有一个执行以下操作的python脚本:

1)它将打印“hi”,chr(13),chr(13),“bi”写入文件。 2)当我执行f.read()时,我在shell上看到以下内容:'hi \ r \ n bi'

然而在文件中它被写成'hi bi'。 我想做的是: 计算回车数'\ r'并在shell上打印。 另外我想用字符串'abcde'替换子串'\ r \ n'。 代码段: f=open('out2.txt','rb') sub='\r\r' print str.count(sub,1,25)

有谁能建议如何在python中完成这个?

1 个答案:

答案 0 :(得分:0)

要计算文件中特定字符的数量,您应该使用ascii模式(非二进制模式)打开文件。

def count_str(file, s):
    ans = 0
    with open(file, 'r') as fp:
        ans = fp.read().count(s)
    return ans

如果必须以二进制模式打开文件,则代码如下,

def count_str_binary(file, s):
    ans = 0
    with open(file, 'rb') as fp:
        buf = fp.read()
        bufsize = len(buf)
        length = len(s)
        for i in range(bufsize - length + 1):
            ok = True
            for j in range(length):
                if buf[i + j] != ord(s[j]):
                    ok = False
                    break
            if ok:
                ans += 1
    return ans