关于字符串:如何在Python中选择文件名的一部分(省略扩展名)?

How do I select part of a filename (leave out the extension) in Python?

本问题已经有最佳答案,请猛点这里访问。

例如,如果我有变量"file.txt",我希望只将"file"保存到变量中。我希望消除最后一个点(包括点)之外的任何内容。所以,如果我有"file.version2.txt",我就只剩下"file.version2"。有办法吗?


你必须使用os.path.splitext

1
2
3
4
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'

类似操作的完整参考可在http://docs.python.org/2/library/os.path.html中找到。


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

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


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

1
2
3
4
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])