首页 > 解决方案 > 读取文件并用 python 替换 LF,但不是 CR-LF

问题描述

我在 Windows 上工作,有一堆文本文件,其中有些行以 CRLF 结尾,有些以 LF 结尾。我需要做的是将那些以 LF 结尾的替换为<br>CRLF 并保持原样。

我尝试了 regex (?<!\\r)\\n、strip() 和 splitlines(),但 python 总是将 LF 视为 CRLF。

我能做些什么来完成仅替换 LF 的操作?

谢谢 B。


更新

我再次检查了您的建议,但是它们给了我与我提到的相同的结果 - CRLF 与 LF 被视为相同。

我附上了我在示例输入文件旁边使用的代码和我得到的结果图像。

with open(fileImport) as fp:
    testContent = fp.read()

    print("**** RESULT 1")
    print(testContent)
    print(" ")

    print("**** RESULT 2")
    testContent1 = re.sub(r'(?<!\r)\n', ' <br>', testContent)
    print(testContent1)
    print(" ")

    print("**** RESULT 3")
    testContent2 = testContent.replace("\n", "<br>")
    print(testContent2)

这就是我使用不同选项得到的结果......

**** RESULT 1
----Row1;TX2829;Text Object;Value1
----Row2;TX2756;Text Object;"= 'Value in row 1: ' &
Num(
Sum(A)/
Sum(B)


, '#.##0 EUR')"
----Row3;CH246;Pivot Table;Title of pivot


**** RESULT 2
----Row1;TX2829;Text Object;Value1 <br>----Row2;TX2756;Text Object;"= 'Value in row 1: ' & <br>Num( <br>Sum(A)/ <br>Sum(B) <br> <br>             <br>, '#.##0 EUR')" <br>----Row3;CH246;Pivot Table;Title of pivot <br>

**** RESULT 3
----Row1;TX2829;Text Object;Value1<br>----Row2;TX2756;Text Object;"= 'Value in row 1: ' &<br>Num(<br>Sum(A)/<br>Sum(B)<br><br>          <br>, '#.##0 EUR')"<br>----Row3;CH246;Pivot Table;Title of pivot<br>

这就是我需要的

----Row1;TX2829;Text Object;Value1
----Row2;TX2756;Text Object;"= 'Value in row 1: ' &<br>Num(<br>Sum(A)/<br>Sum(B)<br><br>            <br>, '#.##0 EUR')"
----Row3;CH246;Pivot Table;Title of pivot

示例文件位于:https ://www.dropbox.com/s/s81dibm8gxsfotf/TEST_FILE.csv?dl=0

提前感谢,B

标签: python

解决方案


你可以string.replace像这样使用:

string.replace("\n", "<br>")

或使用链接。


推荐阅读