Python-替换字节文件中的正则表达式匹配项



正在努力自动清理文本文件,以便进行后续的数据分析。我有一个文本到选项卡文件,我需要删除"文本"的实例(删除"但保留选项卡(。

然后,我想删除之前的字符不是nor\r的实例。即\r\n是OK x不是。我有第一部分工作,但没有第二部分任何帮助感谢。我很感激可能有更好的方法来做到这一点,因为我正在写作,然后以字节格式打开,因为我似乎无法在"r"模式下检测到/r。

import re
import sys
import time
originalFile = '14-09 - Copy.txt'
amendedFile = '14-09 - amended.txt'
with open(originalFile, 'r') as content_file:
    content = content_file.read()
content = content.replace('t"','t')
with open(amendedFile,'w') as f:
    f.write(content)
with open(amendedFile, 'rb') as content_file:
    content = content_file.read()
content = re.sub(b"(?<!r)n","", content)
with open(amendedFile,'wb') as f:
    f.write(content)
print("Done")

为了清晰或完整,下面的python 2代码确定了我感兴趣的位置(我现在只是想自动删除它们(。即

\\r\n文本应等于\r\n文本

\t\n文本应等于\t文本

文本\n文本应等于TextText

import re
import sys
import time
with open('14-09 - Copy.txt', 'rb') as content_file:
    content = content_file.read()
newLinePos = [m.start() for m in re.finditer('n', content)]
for line in newLinePos:
    if (content[line-1]) != 'r':
        print (repr(content[line-20:line]))

一如既往地感谢!

您可能希望使用([^r])n作为模式,然后替换1以保留之前的字符。

所以你的线路是

content = re.sub(b"([^r])n",r"1", content)

最新更新