Reputation: 11
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
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
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