Удалите лишние пробелы в середине объединения строк Python - PullRequest
0 голосов
/ 25 мая 2011

У меня есть следующая строка, которая заставляет мой скрипт Python завершить работу:

"625             625 QUAIL DR UNIT B"

Мне нужно удалить лишние пробелы в середине строки, поэтому я пытаюсь использовать следующий скрипт split split:

import arcgisscripting
import logging 
logger = logging.getLogger()

gp = arcgisscripting.create(9.3)
gp.OverWriteOutput = True

gp.Workspace = "C:\ZP4"
fcs = gp.ListWorkspaces("*","Folder")

for fc in fcs:

    print fc
    rows = gp.UpdateCursor(fc + "//Parcels.shp")
    row = rows.Next()
    while row:
        Name = row.GetValue('SIT_FULL_S').join(s.split())
        print Name
        row.SetValue('SIT_FULL_S', Name)
        rows.updateRow(row)
        row = rows.Next()
    del row
    del rows

Ответы [ 4 ]

4 голосов
/ 25 мая 2011

Ваш исходный код и ваша ошибка не совпадают, состояния ошибки вы не определили переменную SIT_FULL_S.

Я предполагаю, что вы хотите:

Name = ' '.join(row.GetValue('SIT_FULL_S').split())
3 голосов
/ 25 мая 2011

Используйте модуль re ...

>>> import re
>>> str = 'A   B C'
>>> re.sub(r'\s+', ' ', str)
'A B C'
2 голосов
/ 25 мая 2011

Я считаю, что вы должны использовать регулярные выражения, чтобы сопоставить все места, где вы найдете два или более пробелов, а затем заменить его (каждый раз) на один пробел.

Это можно сделать, используя более короткую часть кода:

re.sub(r'\s{2,}', ' ', your_string)
0 голосов
/ 25 мая 2011

Это немного неясно, но я думаю, что вам нужно:

" ".join(row.GetValue('SIT_FULL_S').split())
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...