Удаление расширения файла с помощью rstrip в numpy - PullRequest
0 голосов
/ 06 апреля 2019

Предположим, у меня есть список названий песен

songlist = np.array(['1.mp3', '2.mp3','3.mp3'])

Согласно документации numpy, есть полезная функция char, которая называется rstrip:

Для каждого элемента в себе вернуть копию с завершающими символами удален.

Поскольку расширение файла находится точно в конце строки, поэтому я пытаюсь использовать этот rstrip для удаления расширений файла

np.core.char.rstrip(songlist,'.mp3')

Тем не менее, это дает мне следующий вывод

массив (['1', '2', ''], dtype = '

Что я здесь не так делаю? Как использовать функцию rstrip для правильного удаления расширений файлов?

Ответы [ 3 ]

2 голосов
/ 06 апреля 2019

Если вы хотите использовать функции numpy string:

s = np.array([np.str.rpartition(s,'.mp3')[0] for s in songlist])

Вы также можете посмотреть на partition и replace

2 голосов
/ 06 апреля 2019

Я думаю, что numpy - не лучший инструмент для работы со строками.Я бы лично использовал нативный Python.

songlist = np.array(['1.mp3', '2.mp3','3.mp3'])

# extract the part you want with split()
songlist = [s.split('.')[0] for s in songlist]
# could also just slice
# songlist = [s[:-4] for s in songlist]
1 голос
/ 06 апреля 2019

Как уже упоминалось @dgumo, rstrip удаляет символы независимо от их порядка.Чтобы удалить только «.mp3»,

[song.replace('.mp3' , '') for song in songlist]

Или, если вы уверены, что строка заканчивается на .mp3

[song[:-4] if song.endswith('.mp3') else song for song in songlist]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...