如何从长字符串中删除新行

问题描述 投票:0回答:1

我有一个文件,其中包含非常长的字符串,大约有 300 多个字符串字符集。该字符串由空格和换行符组成。

文件内容如下:

[EEPROM]
Logic EEPROM = 67 0 0 14 1 249 95 15 65 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 51 69 48 48 56 1 48 52 49 0 48 54 4 67 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 48 8 49 50 50 9 51 48 48 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 48 48 48 48 48 0 4 0 0 22 145 38 51 49 5 53 51 49 52 5 5 52 55 0 48 4 57 48 45 55 48 54 57 51 0 0 0 0 0 0 0 0 0 0 0 1 0 2 0 0 48 53 45 4 54 45 50 48 9 55 48 53 45 49 5 45 50 48 49 55 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Data EEPROM = 140 0 0 226 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 3 1 1 0 0 0 0 1 219 2 5 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3 1 1 1 0 0 0 1 219 2 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 6 1 1 0 0 0 0 1 219 2 15 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 1 219 2 5 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 10 1 1 0 1 50 0 1 219 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 19 1 1 0 0 0 0 1 19 2 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 18 1 1 0 0 0 0 1 19 2 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

我想提取“逻辑EEPROM”的数据。我尝试使用以下 python 代码进行测试。

LogicEE_St = 'Logic EEPROM = '

fileToRead = 'C:\\Users\\Arduino\\Desktop\\Python\\Python_NSE\\Test.txt'

with open(fileToRead, 'r') as fp:  
    
    # read all lines in a list
    lines = fp.readlines()
    for line in lines:
        # check if string present on a current line
        if line.find(LogicEE_St) != -1:
            LogicEE_Ref_Line_1 = line          
            break
       
print(LogicEE_Ref_Line_1)
split_text = LogicEE_Ref_Line_1.replace('\n', '').replace('\r', '').replace(' \n', '').replace(' \r', '')
print(split_text)
split_text = LogicEE_Ref_Line_1.strip()
print(split_text)
print("\n".join(item for item in LogicEE_Ref_Line_1.split('\n') if item))

clean_text = "".join(split_text)
print(clean_text)

结果不是一行就出来的。它带有新的线条角色。

我只想删除换行符,以便字符串没有换行符。

我已经在网上搜索并尝试了一切,但仍然不起作用。

顺便说一句,我使用 Visual Studio Code 进行测试,并使用 Notepad++ 和 Sublime Text(不自动换行)将结果视为一行。

最诚挚的问候, 昂KL

python
1个回答
0
投票

使用

.rstrip("\n")
代替!

>>> data = io.StringIO("""[EEPROM]
... Logic EEPROM = 67 0 0 14 1 249 95 15 65 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 51 69 48 48 56 1 48 52 49 0 48 54 4 67 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 48 8 49 50 50 9 51 48 48 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 48 48 48 48 48 0 4 0 0 22 145 38 51 49 5 53 51 49 52 5 5 52 55 0 48 4 57 48 45 55 48 54 57 51 0 0 0 0 0 0 0 0 0 0 0 1 0 2 0 0 48 53 45 4 54 45 50 48 9 55 48 53 45 49 5 45 50 48 49 55 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
... Data EEPROM = 140 0 0 226 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 3 1 1 0 0 0 0 1 219 2 5 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3 1 1 1 0 0 0 1 219 2 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 6 1 1 0 0 0 0 1 219 2 15 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 1 219 2 5 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 10 1 1 0 1 50 0 1 219 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 19 1 1 0 0 0 0 1 19 2 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 18 1 1 0 0 0 0 1 19 2 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
... """)
>>> for line in data:
...     if line.startswith("Logic EEPROM "):
...         print(repr(line.rstrip("\n")))
... 
'Logic EEPROM = 67 0 0 14 1 249 95 15 65 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 51 69 48 48 56 1 48 52 49 0 48 54 4 67 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 48 8 49 50 50 9 51 48 48 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 48 48 48 48 48 0 4 0 0 22 145 38 51 49 5 53 51 49 52 5 5 52 55 0 48 4 57 48 45 55 48 54 57 51 0 0 0 0 0 0 0 0 0 0 0 1 0 2 0 0 48 53 45 4 54 45 50 48 9 55 48 53 45 49 5 45 50 48 49 55 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0'
© www.soinside.com 2019 - 2024. All rights reserved.