os.path.splitext(file.txt.gz)转换成(file,.txt.gz)

时间:2019-01-31 18:55:18

标签: python string os.path

当前,我的文件以/path_to_file/file.txt.gz结尾。

我想分割提取的文件名(在.txt.gz之前)。

x = os.path.basename("/path_to_file/file.txt.gz") 

给我

file.txt.gz

同时

os.path.splitext("file.txt.gz")

给我

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

是否有将'file'与'.txt.gz'分开的函数?

我想我只能使用re.sub(),但想知道是否存在os.path函数。

谢谢。

4 个答案:

答案 0 :(得分:1)

您可以轻松完成。只需尝试:

import os

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

一个例子是:

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

答案 1 :(得分:1)

令人惊讶的是,没有人提到str.split method takes an argument在该字符上分裂的最大次数:例如filepath.split('.', 1)

答案 2 :(得分:0)

尝试一下:

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

答案 3 :(得分:0)

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