Подстановочные знаки в словаре поиска и замены - PullRequest
0 голосов
/ 08 сентября 2011

Я довольно плохо знаком с Python, поэтому, если моя терминология неверна, я прошу прощения.Я использую Python 2.6.5, я не уверен в обновлении до 3.0, так как Python изначально был загружен с моим программным обеспечением для пространственного анализа.Я пишу программу для поиска и замены заголовков столбцов в нескольких текстовых файлах с разделителями-запятыми.Поскольку существует более ста заголовков, и они одинаковы во всех файлах, я решил создать словарь и «мариновать», чтобы сохранить все замены (пришла идея прочитать другие посты).Моя проблема возникает, когда я заметил, что в заголовках столбцов текстового файла есть символы табуляции и пробелы, например:

    ..."Prev Roll #: ","Prev Prime/Sub","Frontage : ","Depth            : ","Area             : ","Unit of Measure  : ",...

Так что я подумал, почему бы просто не вставить символ подстановки в конце моего ключевого термина, чтобыпоиск будет соответствовать ему независимо от того, сколько пробелов делят имя и двоеточие.Я пытался использовать подстановочный знак *, но он не работает, когда я запускаю его, не найдено ни одного совпадения / замены.Я правильно использую подстановочный знак?Возможно ли то, что я пытаюсь сделать?Или я должен покончить со словарем рассола?Ниже приведен пример того, что я пытаюсь сделать

import cPickle as pickle

general_D = { ....
             "Prev Prime/Sub" : "PrvPrimeSub",
             "Frontage*" : "Frontage",
             "Depth*" : "Depth",
             "Area*" : "Area",
             "Unit of Measure*" : "UnitMeasure", 

Спасибо за ввод!

1 Ответ

1 голос
/ 08 сентября 2011
  1. Используйте модуль csv для анализа и записи данных через запятую.
  2. Используйте метод string strip () для удаления ненужных пробелов и вкладок.
  3. Не включайте * в названия ваших ключей. Они не будут скованы, как вы надеюсь. Они просто представляют буквально * s там.
  4. Вероятно, лучше использовать json вместо маринада. JSON это человекочитаемый, независимый от языка программирования. Рассол может иметь проблемы даже в разных версиях Python.
...