os.path.splitext (file.txt.gz) в (file, .txt.gz) - PullRequest
0 голосов
/ 31 января 2019

В настоящее время у меня есть файлы, которые заканчиваются на /path_to_file/file.txt.gz.

Я хотел бы разделить извлечение имени файла (перед .txt.gz).

x = os.path.basename("/path_to_file/file.txt.gz") 

дает мне

file.txt.gz

, в то время как

os.path.splitext("file.txt.gz")

дает мне

('file.txt','.gz')

Есть ли функция, которая отделяет 'file' от '.txt.gz '?

Полагаю, я мог бы просто использовать re.sub (), но мне было интересно, существует ли функция os.path.

Спасибо.

Ответы [ 3 ]

0 голосов
/ 31 января 2019
s = "/path_to_file/file.txt.gz"
basename = os.path.basename(s) # file.txt.gz
filename = basename[:basename.find('.')] # file
extension = basename[basename.find('.'):] # txt.gz
0 голосов
/ 31 января 2019

Вы можете сделать это очень легко.Просто попробуйте:

import os

filename = os.path.split(path)[1]
filename_wout_ext = filename.split('.')[0]

Примером будет:

>>> path = "/path_to_file/file.txt.gz"
>>> filename = os.path.split(path)[1]
>>> filename
>>> 'file.txt.gz'
>>> filename_wout_ext = filename.split('.')[0]
>>> filename_wout_ext
>>> 'file'
0 голосов
/ 31 января 2019

Попробуйте это:

".".join(os.path.basename("/path_to_file/file.txt.gz").split('.')[:1])

>>'file'

os.path.splitext(os.path.splitext(os.path.basename("/path_to_file/file.txt.gz"))[0])[0]

>>'file'
...