Re: How to delete a ast character from a string?



dudeja.rajat@xxxxxxxxx wrote:
On Fri, Aug 29, 2008 at 7:40 PM, Chris Rebert <cvrebert+clp@xxxxxxxxx> wrote:
On Fri, Aug 29, 2008 at 11:25 AM, <dudeja.rajat@xxxxxxxxx> wrote:
Hi,

I've a list some of whose elements with character \.
I want to delete this last character from the elements that have this
character set at their end,

I have written a small program, unfortunately this does not work:

dirListFinal = []
for item in dirList:
print item
if item.endswith('\\') == True:
You san simplify that line to just:
if item.endswith('\\'):

item = item[0:-1] # This one I googled and
found to remove the last character /
And you don't need the leading 0, so just use:
item = item[:-1]

dirListFinal.append(item)
else:
dirListFinal.append(item)
And those last 3 lines are a bit redundant. Just put one

dirListFinal.append(item)

at the same indentation level as the "if" and delete those 3 lines.

Not that these changes will necessarily fix your program, but they do
make it easier to comprehend for the reader.

- Chris


item.endswith() does not seem to be working.

Please help
--
Regrads,
Rajat
--
http://mail.python.org/mailman/listinfo/python-list



Thanks for the suggestions.
I wondered if the item is really a string. So I added the following to
check this:

item = ""
for item in dirList:
print type(item)
if item.endswith('\\'):
item = item[:-1]
dirListFinal.append(item)


Though item.endswith() is not workin still. The type of item is
appearing to be <type 'str'>
So this confirms this is a string. But why the string operation
endswith() is not working.

Really strange.
--
http://mail.python.org/mailman/listinfo/python-list


==============================
depending on OS and other factors, the DirList may be more like:

ABDIR\ 41 42 44 49 52 5C 0A
nextDir

If so endswith needs to look for \\ and \n
or just
if item[:-2] == '\x5C\x0A':
item=item[:-2]

Best to dump a test line to hex and see what you are actually dealing with. This is nearly a daily thing for me.

EOL Microsoft 0D0A
EOL Unix 0A
EOL Mac 0D
and the programmers that wrote the read and /or write routines vary widely in their handling of EOLs. Some remember to strip the 0A but leave the 0D and some do the opposite and some just add/remove 2 bytes without checking. Never know what you are going to wind up with. If your files are from varied sources, put a test for each in the front of the section and set/use variables to control how many things you need to remove. (-1,-2 or -3 for 0,1 or 2 EOL bytes respectively since you seem to be removing the continuation marker)

Depending on what you used to acquire the list be advised that Python has routines that cook the data. Not all but some. So that line just read may not contain what it appears to. Examples of this have appeared in this mail list recently. Choose your routines carefully.

It is very easy to get into a singular mindset and not consider the rest of the Universe. We all do it. If you want purity of form you will have to sacrifice efficiency. Also true in reverse.


Steve
norseman@xxxxxxxxxx
.



Relevant Pages

  • [TOMOYO #15 3/8] Common functions for TOMOYO Linux.
    ... This file contains common functions (e.g. policy I/O, pattern matching). ... Since TOMOYO Linux is a name based access control, ... TOMOYO Linux's string manipulation functions make reviewers feel crazy, ... the Linux kernel accepts all characters but NUL character ...
    (Linux-Kernel)
  • RfD: Escaped Strings version 4
    ... the S" string can only contain printable characters, ... the S" string cannot contain the '"' character, ... as an escape character for the entry of characters that cannot be ... \b BS (backspace, ASCII 8) ...
    (comp.lang.forth)
  • RfD: Escaped Strings version 4
    ... the S" string can only contain printable characters, ... the S" string cannot contain the '"' character, ... as an escape character for the entry of characters that cannot be ... \b BS (backspace, ASCII 8) ...
    (comp.lang.forth)
  • Re: RfD: Escaped Strings
    ... the S" string can only contain printable characters, ... the S" string cannot contain the '"' character, ... \b BS (backspace, ASCII 8) ... \ ** escapes to characters much as C does. ...
    (comp.lang.forth)
  • Re: A note on computing thugs and coding bums
    ... code is valid for any character set that is legal in C (which is a ... characters in the required source character set ... A String, in C Sharp or Java, can be redefined. ... allow programmers to handle some other data format, ...
    (comp.programming)