Let\'s say I\'m parsing a file, which uses ;
as the comment character. I don\'t want to parse comments. So if I a line looks like this:
example.com.
Here is another way :
In [6]: line = "foo;bar" In [7]: line[:line.find(";")] + "\n" Out[7]: 'foo\n'
For Python 2.5 or greater, I would use the partition method:
rtr = line.partition(';')[0].rstrip() + '\n'
file = open(r'c:\temp\test.txt', 'r')
for line in file: print
line.split(";")[0].strip()
So you'll want to split the line on the first semicolon, take everything before it, strip off any lingering whitespace, and append a newline character.
rtr = line.split(";", 1)[0].rstrip() + '\n'
Links to Documentation:
Reading, splitting, stripping, and joining lines with newline all in one line of python:
rtr = '\n'.join(line.split(';')[0].strip() for line in open(r'c:\temp\test.txt', 'r'))
I'd recommend saying
line.split(";")[0]
which will give you a string of all characters up to but not including the first ";" character. If no ";" character is present, then it will give you the entire line.