我有一个执行以下操作的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中完成这个?
答案 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