gpt4 book ai didi

python - 在 Python 中从文件名中提取文件扩展名的方法是什么?

转载 作者:太空狗 更新时间:2023-10-30 02:21:19 25 4
gpt4 key购买 nike

文件名是动态的,我需要提取文件扩展名。文件名如下所示: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'

关于python - 在 Python 中从文件名中提取文件扩展名的方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16976192/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com