Удаление конца имени файла в python - PullRequest
0 голосов
/ 27 февраля 2019

Мне нужно удалить конец имени файла ниже:

Testfile_20190226114536.CSV.986466.1551204043175

Так что все, что нужно после CSV, нужно удалить, поэтому у меня есть файл с именем:

Testfile_20190226114536.CSV

Ответы [ 5 ]

0 голосов
/ 27 февраля 2019

Вот шаги, чтобы увидеть, что происходит

>>> filename = 'Testfile_20190226114536.CSV.986466.1551204043175'

# split the string into a list at '.'
>>> l = filename.split('.')

>>> print(l)
['Testfile_20190226114536', 'CSV', '986466', '1551204043175']

# index the list to get all the elements before and including 'CSV'
>>> filtered_list = l[0:l.index('CSV')+1]

>>> print(filtered_list)
['Testfile_20190226114536', 'CSV']

# join together the elements of the list with '.'
>>> out_string = '.'.join(filtered_list)
>>> print(out_string)

Testfile_20190226114536.CSV

Вот полная функция:

def filter_filename(filename):
    l = filename.split('.')
    filtered_list = l[0:l.index('CSV')+1]
    out_string = '.'.join(filtered_list)
    return out_string

>>> filter_filename('Testfile_20190226114536.CSV.986466.1551204043175')
'Testfile_20190226114536.CSV'
0 голосов
/ 27 февраля 2019

Простой способ заключается в следующем:

Все ваши файлы имеют этот "CSV" в середине?

Вы можете попробовать разделить и присоединить свое имя так:

name = "Testfile_20190226114536.CSV.986466.1551204043175"
print ".".join(name.split(".")[0:2])
0 голосов
/ 27 февраля 2019

Вы можете использовать re.sub:

import re
result = re.sub('(?<=\.CSV)[\w\W]+', '', 'Testfile_20190226114536.CSV.986466.1551204043175')

Выход:

'Testfile_20190226114536.CSV'
0 голосов
/ 27 февраля 2019

Предположим, file_name = "Testfile_20190226114536.CSV.986466.1551204043175"

file_name = file_name.split('.CSV')[0] + '.CSV'
0 голосов
/ 27 февраля 2019

Так просто, как это:

s = 'Testfile_20190226114536.CSV.986466.1551204043175'
suffix = '.CSV'

s[:s.rindex(suffix) + len(suffix)]
=> 'Testfile_20190226114536.CSV'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...