在Python中从文件名中提取文件扩展名的方法是什么?
发布时间:2020-12-20 11:27:51 所属栏目:Python 来源:网络整理
导读:文件名是动态的,我需要提取文件扩展名.文件名如下所示: parallels-workstation-parallels-en_US-6.0.13976.769982.run.sh 20090209.02s1.1_sequence.txtSRR002321.fastq.bz2hello.tar.gzok.txt 对于第一个我要提取txt,第二个我要提取fastq.bz2,对于第三个我
文件名是动态的,我需要提取文件扩展名.文件名如下所示:
parallels-workstation-parallels-en_US-6.0.13976.769982.run.sh 20090209.02s1.1_sequence.txt SRR002321.fastq.bz2 hello.tar.gz ok.txt 对于第一个我要提取txt,第二个我要提取fastq.bz2,对于第三个我要提取tar.gz. 我使用os模块获取文件扩展名为: import os.path extension = os.path.splitext('hello.tar.gz')[1][1:] 这给了我只有gz,如果文件名是ok.txt就没问题但是对于这个我希望扩展名为tar.gz. 解决方法import os def splitext(path): for ext in ['.tar.gz','.tar.bz2']: if path.endswith(ext): return path[:-len(ext)],path[-len(ext):] return os.path.splitext(path) assert splitext('20090209.02s1.1_sequence.txt')[1] == '.txt' assert splitext('SRR002321.fastq.bz2')[1] == '.bz2' assert splitext('hello.tar.gz')[1] == '.tar.gz' assert splitext('ok.txt')[1] == '.txt' 删除点: import os def splitext(path): for ext in ['.tar.gz','.tar.bz2']: if path.endswith(ext): path,ext = path[:-len(ext)],path[-len(ext):] break else: path,ext = os.path.splitext(path) return path,ext[1:] assert splitext('20090209.02s1.1_sequence.txt')[1] == 'txt' assert splitext('SRR002321.fastq.bz2')[1] == 'bz2' assert splitext('hello.tar.gz')[1] == 'tar.gz' assert splitext('ok.txt')[1] == 'txt' (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |