当前,我的文件以/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函数。
谢谢。
答案 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