3
votes

os.path.splitext (file.txt.gz) dans (fichier, .txt.gz)

Actuellement, j'ai des fichiers qui se terminent par /path_to_file/file.txt.gz.

Je voudrais diviser l'extrait par le nom du fichier (avant le .txt.gz).

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


1 commentaires

faites simplement un 'file.txt.gz'.split ('. ') vous donne [' file ',' txt ',' gz '], cela ne suffirait-il pas?


4 Réponses :


0
votes

Essayez ceci:

".".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'


0 commentaires

0
votes
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 commentaires

1
votes

Vous pouvez le faire très facilement. Essayez simplement:

>>> 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'

Un exemple serait:

import os

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


0 commentaires

1
votes

Surpris que personne n'ait mentionné que le str.split prend un argument sur le nombre maximum de fois à fractionner sur ce caractère: par exemple, filepath.split ('.', 1) .


1 commentaires

C'est beaucoup plus simple!