Anuar Mukatov
Anuar Mukatov

Reputation: 11

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")

Upvotes: 1

Views: 326

Answers (2)

nehem
nehem

Reputation: 13662

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.

Upvotes: 0

kgf3JfUtW
kgf3JfUtW

Reputation: 14926

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?

Upvotes: 1

Related Questions