简体   繁体   中英

How to find and add new line in python if have spaces before

I have some trouble with my code. In "line1 and line2" before the text in file have some spaces, how i can ignore them?

Ex.:

<server xmlns="urn:jboss:domain:1.2">
         </handlers>
        </root-logger>
    </subsystem>
    <subsystem xmlns="urn:jboss:domain:naming:1.1">
    <bindings>

And these spaces interfere with code to find line1 and line2.

Below is my code

with open("xxx", "r+") as f:
a = [x.rstrip() for x in f]
index = 1
line1 = '<subsystem xmlns="urn:jboss:domain:naming:1.1">'
line2 = "<bindings>"
for item in a:
    if item.startswith(line1 and line2):
        a.insert(index, '<simple name="java:global/nbs/app/portal/config/routes"\n\tvalue="C:\\nbs\\app\\portal\\routes.properties"/>')
        break
    index += 1
f.seek(0)
for line in a:
    f.write(line + "\n")

The lstrip() method will remove leading whitespaces, newline and tab characters on a string beginning:

>>> '     hello world!'.lstrip()
'hello world!

Reference: How do I remove leading whitespace in Python?

Change this

a = [x.rstrip() for x in f]

into this

a = [x.strip() for x in f]

Explnation: rstrip() only trims the whitespaces on the right side, what you need is strip() method which strips whitespaces on both sides.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM