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')
4 Réponses :
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'
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
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]
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)
.
C'est beaucoup plus simple!
faites simplement un 'file.txt.gz'.split ('. ') vous donne [' file ',' txt ',' gz '], cela ne suffirait-il pas?