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?