On Jun 27, 6:32 am, [EMAIL PROTECTED] wrote:
> Hi
> I am a beginner on Python and have a problem..
>
> I have text file and reading it line by line and there are backspace
> characters in it like '\b' or anything you want like "#". I want to
> replace these chars. with Backspace action. I mean deleting the
> previous char. and the \b char also. and writing all cleaned text to a
> file again.
>
> How can I do that.
>
I haven't seen anything like that for ... ummm, a very long time. Used
for bolding and making up your own characters on a daisy-wheel
printer. Where did you get the file from?
If there are no cases of multiple adjacent backspaces (e.g. "blahfoo\b
\b\bblah") you can do:
new_line = re.sub(r'.\x08', old_line, '')
Note: using \x08 for backspace instead of \b to avoid having to worry
about how many \ to use in the regex :-)
Otherwise you would need to do something like
while True:
new_line = re.sub(r'[^\x08]\x08', '', old_line)
if new_line == old_line: break
old_line = new_line
And if you were paranoid, you might test for any remaining stray
backspaces, just in case the line contains "illegal" things like
"\bfoo" or "foo\b\b\b\b" etc.
Cheers,
John
--
http://mail.python.org/mailman/listinfo/python-list