Использование lstrip на дорожках слишком сильно из пути [duplicate]

Он может работать с параметром bind также следующим образом:

$name = "%$name%";
$query = $dbh->prepare("SELECT * FROM `gc_users` WHERE `name` like :name");
$query->bindParam(':name', $name);
$query->execute();
7
задан vaultah 10 March 2016 в 18:24
поделиться

3 ответа

strip() удаляет все ведущие и завершающие символы из входной строки, которые соответствуют одному из символов в строке параметров:

>>> "abcdefabcdefabc".strip("cba")
'defabcdef'

Вы хотите использовать регулярное выражение: table_name = re.sub(r"\.csv$", "", name) или os.path s:

>>> table_name, extension = os.path.splitext("movies.csv")
>>> table_name
'movies'
>>> extension
'.csv'
9
ответ дан Tim Pietzcker 18 August 2018 в 20:57
поделиться

Возможно, немного поздно, но для тех, кто читает это в будущем, есть ленивый способ, который тоже работает отлично:

table_name = name.rstrip("csv").rstrip(".")

Как сказано в других решениях, метод strip() удаляет все ведущие / завершающие символы, соответствующие тем, что находятся в круглых скобках. Поэтому идея в этом подходе заключается в следующем:

  1. Удалите расширение csv - поскольку существует ., мы знаем, что rstrip() прекратит поиск там. Это оставит нас с строкой movies..
  2. Удалите . из строки movies. - rstrip() будет искать только конечные точки.

Почему rstrip(): Поскольку мы знаем, что текст, который нужно удалить, находится в конце строки, мы можем указать rstrip для лучшего управления (т. е. избежать непреднамеренного удаления любых возможных ведущих символов c, s или v)

0
ответ дан ffi 18 August 2018 в 20:57
поделиться

Я не знаю, что вам нужно, но если он извлекает имя файла без расширения, у вас есть функция os.path.splitext :

>>> import os
>>> name, extension = os.path.splitext("movies.csv")
>>> name
'movies'
1
ответ дан Joël 18 August 2018 в 20:57
поделиться