在Python中如何选择文件名的一部分(去掉扩展名)?

在Python中如何选择文件名的一部分(去掉扩展名)?,python,string,textselection,Python,String,Textselection,例如,如果我有一个变量“file.txt”,我希望能够只将“file”保存到一个变量中。我想消除最后一个点(包括点)之外的任何东西。所以,如果我有“file.version2.txt”,我会留下“file.version2”。 有办法做到这一点吗?您必须使用os.path.splitext In [3]: os.path.splitext('test.test.txt') Out[3]: ('test.test', '.txt') In [4]: os.path.splitext('test.t

例如,如果我有一个变量“file.txt”,我希望能够只将“file”保存到一个变量中。我想消除最后一个点(包括点)之外的任何东西。所以,如果我有“file.version2.txt”,我会留下“file.version2”。
有办法做到这一点吗?

您必须使用
os.path.splitext

In [3]: os.path.splitext('test.test.txt')
Out[3]: ('test.test', '.txt')
In [4]: os.path.splitext('test.test.txt')[0]
Out[4]: 'test.test'

类似操作的完整参考可在此处找到

您必须使用
os.path.splitext

In [3]: os.path.splitext('test.test.txt')
Out[3]: ('test.test', '.txt')
In [4]: os.path.splitext('test.test.txt')[0]
Out[4]: 'test.test'
类似操作的完整参考可在此处找到

使用该模块,您可以检索文件的全名,然后删除扩展名:

import os
file_name, file_ext = os.path.splitext(os.path.basename(path_to_your_file))
使用该模块,您可以检索文件的全名,然后删除扩展名:

import os
file_name, file_ext = os.path.splitext(os.path.basename(path_to_your_file))

如果这不是太长,如果文件在同一目录中,您可以这样做

old_f = 'file.version2.txt'
new_f = old_f.split('.')
sep = '.'
sep.join(new_f[:-1]) # or assign it to a variable current_f = sep.join(new_f[:-1])

如果这不是太长,如果文件在同一目录中,您可以这样做

old_f = 'file.version2.txt'
new_f = old_f.split('.')
sep = '.'
sep.join(new_f[:-1]) # or assign it to a variable current_f = sep.join(new_f[:-1])

检查[删除最后n个字符][1][1]:结合使用
os.path.basename
os.path.splitext
似乎是一个很好的开始检查[删除最后n个字符][1][1]:结合使用
os.path.basename
os.path.splitext
似乎是一个不错的开始这正是我所需要的。在使用os.path.SplitExt之前,我需要添加的只是“导入os”,如果您得到答案,然后选择它作为答案:)它告诉我必须等待几分钟,否则我将不得不:)如果它告诉您等待,那么您必须;)这正是我需要的。在使用os.path.SplitExt之前,我需要添加的只是“导入os”,如果您得到答案,然后选择它作为答案:)它告诉我必须等待几分钟,否则我将不得不:)如果它告诉您等待,那么您必须;)