Как определить, что путь к файлу заключен в ".." с помощью Python? - PullRequest
0 голосов
/ 12 сентября 2010

Я прочитал INI-файл, чтобы открыть файл в Python. Дело в том, что информация о файле иногда находится внутри "..", но иногда это не так.

Например,

fileA = "/a/b/c.txt"
fileB = /a/b/d.txt

Есть ли простой способ определить, заключена ли строка в "..", и вернуть строку в кавычку?

Ответы [ 2 ]

3 голосов
/ 12 сентября 2010

Простое обнаружение будет включать проверку s[:1] == s[-1:] == '"' (осторожно формулируя его с помощью нарезки, а не индексации, чтобы избежать исключений, если s - пустая строка), и условное удаление ровно одной кавычки из каждойend, если каждый присутствует на обоих концах, равен

if s[:1] == s[-1:] == '"':
    s = s[1:-1]

В качестве альтернативы подход в ответе @ Magnus, как он говорит, удаляет all начальную и конечную кавычки и делает это безоговорочно;так, например, если s начинается с трех кавычек, но не заканчивается ни на одном (и во всех других странных случаях, помимо ваших спецификаций, как указано), фрагмент моего ответа не изменит s, @ Magnus's отбросит три ведущие кавычки.

«Вы платите свои деньги и делаете свой выбор» ... если вам все равно, так или иначе (то есть вы уверены, что ситуация, когдаэти два ответа отличаются "абсолютно и совершенно невозможно" ...), тогда я думаю, что подход @Magnus на более высоком уровне абстракции более аккуратен (но это вопрос стиля - и его подход, и мой - правильные решения Python, когда выне заботятся о несоответствующих или несбалансированных кавычках; -).

2 голосов
/ 12 сентября 2010

Чтобы удалить все ведущие и конечные кавычки:

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