os.path.splitext(file.txt.gz) 到 (文件,.txt.gz)

os.path.splitext(file.txt.gz) into (file,.txt.gz)

目前,我有以 /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 函数。

谢谢。

试试这个:

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

你可以很容易地做到这一点。试试看:

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'

很惊讶没有人提到 str.split method takes an argument 关于那个字符的最大分割次数:例如,filepath.split('.', 1).