0

我基本上只想调用位于“。”之前的字符串部分。

例如,如果我的文件名是 sciPHOTOf105w0.fits,我想调用“sciPHOTOf105w”作为它自己的字符串,这样我就可以用它来命名一个与之相关的新文件。你怎么做到这一点?我不能只使用数字值“例如,如果我的文件名是'文件',文件 [5:10]。” 我需要能够收集所有内容而不必计数,因为文件名可以有不同的长度。

4

4 回答 4

4

您也可以像这样使用 os.path:

>>> from os.path import splitext
>>> splitext('sciPHOTOf105w0.fits') # separates extension from file name
('sciPHOTOf105w0', '.fits')
>>> splitext('sciPHOTOf105w0.fits')[0]
'sciPHOTOf105w0'

如果您的文件恰好有更长的路径,这种方法也将考虑您的完整路径。

于 2013-07-19T02:58:59.593 回答
2
import os.path
filename = "sciPHOTOf105w0.fits"

root, ext = os.path.splitext(filename)
print "root is: %s" % root
print "ext is: %s" % ext

结果:

>root is: sciPHOTOf105w0
>ext is: .fits
于 2013-07-19T02:59:31.507 回答
1
In [33]: filename = "sciPHOTOf105w0.fits"

In [34]: filename.rpartition('.')[0]
Out[34]: 'sciPHOTOf105w0'

In [35]: filename.rsplit('.', 1)[0]
Out[35]: 'sciPHOTOf105w0'
于 2013-07-19T02:50:15.780 回答
0

您可以.index()在字符串上使用来查找子字符串的第一次出现。

>>> filename = "sciPHOTOf105w0.fits"
>>> filename.index('.')
14
>>> filename[:filename.index('.')]
'sciPHOTOf105w0'
于 2013-07-19T03:03:35.157 回答